Add ProxyInputStream.unwrap()
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 6291db6..fb3ee4a 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -129,6 +129,7 @@
<action dev="ggregory" type="add" due-to="Gary Gregory">Add ChecksumInputStream and test #548.</action>
<action dev="ggregory" type="add" due-to="Gary Gregory">Add AbstractStreamBuilder.getReader().</action>
<action dev="ggregory" type="add" due-to="Gary Gregory">Add Maven property project.build.outputTimestamp for build reproducibility.</action>
+ <action dev="ggregory" type="add" due-to="Gary Gregory">Add ProxyInputStream.unwrap().</action>
<!-- UPDATE -->
<action dev="ggregory" type="update" due-to="Gary Gregory">Bump commons.bytebuddy.version from 1.14.10 to 1.14.11 #534.</action>
<action dev="ggregory" type="update" due-to="Gary Gregory">Bump org.apache.commons:commons-parent from 65 to 66.</action>
diff --git a/src/main/java/org/apache/commons/io/input/ProxyInputStream.java b/src/main/java/org/apache/commons/io/input/ProxyInputStream.java
index d4457d2..872c291 100644
--- a/src/main/java/org/apache/commons/io/input/ProxyInputStream.java
+++ b/src/main/java/org/apache/commons/io/input/ProxyInputStream.java
@@ -252,4 +252,15 @@
}
}
+ /**
+ * Unwraps this instance by returning the underlying InputStream.
+ * <p>
+ * Use with caution; useful to query the underlying InputStream.
+ * </p>
+ * @return the underlying InputStream.
+ * @since 2.16.0
+ */
+ public InputStream unwrap() {
+ return in;
+ }
}
diff --git a/src/test/java/org/apache/commons/io/input/ProxyInputStreamTest.java b/src/test/java/org/apache/commons/io/input/ProxyInputStreamTest.java
index d14833b..c8e73d7 100644
--- a/src/test/java/org/apache/commons/io/input/ProxyInputStreamTest.java
+++ b/src/test/java/org/apache/commons/io/input/ProxyInputStreamTest.java
@@ -19,6 +19,7 @@
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertSame;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -147,6 +148,7 @@
public void testReadEof() throws Exception {
final ByteArrayInputStream proxy = new ByteArrayInputStream(new byte[2]);
try (ProxyInputStream inputStream = new ProxyInputStreamFixture(proxy)) {
+ assertSame(proxy, inputStream.unwrap());
int found = inputStream.read();
assertEquals(0, found);
found = inputStream.read();