Skip to content

Commit

Permalink
Wrapping all methods of the EntityInputStream/InputStreamWrapper
Browse files Browse the repository at this point in the history
Signed-off-by: Maxim Nesen <maxim.nesen@oracle.com>
  • Loading branch information
senivam committed Nov 8, 2024
1 parent 7903c97 commit 3163131
Show file tree
Hide file tree
Showing 4 changed files with 114 additions and 39 deletions.
6 changes: 3 additions & 3 deletions core-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@
</goals>
</execution>
<execution>
<!-- Compile these files with jdk 8 and put them aside to be included in multirelase jar -->
<!-- Compile these files with jdk 8 and put them aside to be included in multi-release jar -->
<!-- Multi-release jar is built by jdk 11+, but these classes are buildable by jdk 8 only -->
<id>compile-2-java8</id>
<phase>process-resources</phase>
Expand Down Expand Up @@ -497,10 +497,10 @@
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/generated-sources/rsrc-gen/META-INF/versions/11/org/glassfish/jersey/internal/jsr166</outputDirectory>
<outputDirectory>${project.build.directory}/generated-sources/rsrc-gen/META-INF/versions/11/org/glassfish/jersey</outputDirectory>
<resources>
<resource>
<directory>${java11.sourceDirectory}/org/glassfish/jersey/internal/jsr166</directory>
<directory>${java11.sourceDirectory}/org/glassfish/jersey</directory>
</resource>
</resources>
</configuration>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
Expand All @@ -22,6 +22,7 @@

import javax.ws.rs.ProcessingException;

import org.glassfish.jersey.innate.io.InputStreamWrapper;
import org.glassfish.jersey.internal.LocalizationMessages;

/**
Expand All @@ -33,7 +34,7 @@
*
* @author Marek Potociar
*/
public class EntityInputStream extends InputStream {
public class EntityInputStream extends InputStreamWrapper {

private InputStream input;
private boolean closed = false;
Expand Down Expand Up @@ -64,40 +65,6 @@ public EntityInputStream(InputStream input) {
this.input = input;
}

@Override
public int read() throws IOException {
return input.read();
}

@Override
public int read(byte[] b) throws IOException {
return input.read(b);
}

@Override
public int read(byte[] b, int off, int len) throws IOException {
return input.read(b, off, len);
}

@Override
public long skip(long n) throws IOException {
return input.skip(n);
}

@Override
public int available() throws IOException {
return input.available();
}

@Override
public void mark(int readLimit) {
input.mark(readLimit);
}

@Override
public boolean markSupported() {
return input.markSupported();
}

/**
* {@inheritDoc}
Expand Down Expand Up @@ -232,4 +199,9 @@ public final InputStream getWrappedStream() {
public final void setWrappedStream(InputStream wrapped) {
input = wrapped;
}

@Override
protected InputStream getWrapped() {
return input;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
/*
* Copyright (c) 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/

package org.glassfish.jersey.innate.io;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
* Generic wrapper template for InputStream.
*/
public abstract class InputStreamWrapper extends InputStream {

/**
* Return the wrapped stream
* @return
*/
protected abstract InputStream getWrapped();

/**
* Get wrapped stream that can throw {@link IOException}
* @return the wrapped InputStream.
* @throws IOException
*/
protected InputStream getWrappedIOE() throws IOException {
return getWrapped();
}

@Override
public int read() throws IOException {
return getWrappedIOE().read();
}

@Override
public int read(byte[] b) throws IOException {
return getWrappedIOE().read(b);
}

@Override
public int read(byte[] b, int off, int len) throws IOException {
return getWrappedIOE().read(b, off, len);
}

@Override
public byte[] readAllBytes() throws IOException {
return getWrappedIOE().readAllBytes();
}

@Override
public int readNBytes(byte[] b, int off, int len) throws IOException {
return getWrappedIOE().readNBytes(b, off, len);
}

@Override
public long transferTo(OutputStream out) throws IOException {
return getWrappedIOE().transferTo(out);
}


@Override
public long skip(long n) throws IOException {
return getWrappedIOE().skip(n);
}

@Override
public int available() throws IOException {
return getWrappedIOE().available();
}

@Override
public void close() throws IOException {
getWrappedIOE().close();
}

@Override
public void mark(int readlimit) {
getWrapped().mark(readlimit);
}

@Override
public void reset() throws IOException {
getWrappedIOE().reset();
}

@Override
public boolean markSupported() {
return getWrapped().markSupported();
}
}

0 comments on commit 3163131

Please sign in to comment.