You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by je...@apache.org on 2018/09/06 11:22:56 UTC
[incubator-dubbo] branch master updated: [Dubbo-2413] Fix
StreamUtils resource leak (#2414)
This is an automated email from the ASF dual-hosted git repository.
jerrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new d173e84 [Dubbo-2413] Fix StreamUtils resource leak (#2414)
d173e84 is described below
commit d173e841c41704d13e7357eb5704764353384963
Author: Yuhao Bi <by...@gmail.com>
AuthorDate: Thu Sep 6 19:22:51 2018 +0800
[Dubbo-2413] Fix StreamUtils resource leak (#2414)
---
.../org/apache/dubbo/common/io/StreamUtils.java | 6 +++
.../apache/dubbo/common/io/StreamUtilsTest.java | 47 ++++++++++++++++------
2 files changed, 40 insertions(+), 13 deletions(-)
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/io/StreamUtils.java b/dubbo-common/src/main/java/org/apache/dubbo/common/io/StreamUtils.java
index 9b52286..5798f02 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/io/StreamUtils.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/io/StreamUtils.java
@@ -98,6 +98,7 @@ public class StreamUtils {
@Override
public void close() throws IOException {
+ is.close();
}
};
}
@@ -199,6 +200,11 @@ public class StreamUtils {
return available;
}
+
+ @Override
+ public void close() throws IOException {
+ is.close();
+ }
};
}
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/io/StreamUtilsTest.java b/dubbo-common/src/test/java/org/apache/dubbo/common/io/StreamUtilsTest.java
index b4dc1b6..2f8595f 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/common/io/StreamUtilsTest.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/common/io/StreamUtilsTest.java
@@ -79,6 +79,8 @@ public class StreamUtilsTest {
is.reset();
assertEquals(-1, is.read());
assertEquals(-1, is.read());
+
+ is.close();
}
@Test
@@ -118,35 +120,54 @@ public class StreamUtilsTest {
@Test(expected = IOException.class)
public void testMarkInputSupport() throws IOException {
InputStream is = StreamUtilsTest.class.getResourceAsStream("/StreamUtilsTest.txt");
- is = StreamUtils.markSupportedInputStream(new PushbackInputStream(is), 1);
-
- is.mark(1);
- int read = is.read();
- assertThat(read, is((int) '0'));
-
- is.skip(1);
- is.read();
+ try {
+ is = StreamUtils.markSupportedInputStream(new PushbackInputStream(is), 1);
+
+ is.mark(1);
+ int read = is.read();
+ assertThat(read, is((int) '0'));
+
+ is.skip(1);
+ is.read();
+ } finally {
+ if (is != null) {
+ is.close();
+ }
+ }
}
@Test
- public void testSkipForOriginMarkSupportInput() {
+ public void testSkipForOriginMarkSupportInput() throws IOException {
InputStream is = StreamUtilsTest.class.getResourceAsStream("/StreamUtilsTest.txt");
InputStream newIs = StreamUtils.markSupportedInputStream(is, 1);
assertThat(newIs, is(is));
+ is.close();
}
@Test(expected = NullPointerException.class)
public void testReadEmptyByteArray() throws IOException {
InputStream is = StreamUtilsTest.class.getResourceAsStream("/StreamUtilsTest.txt");
- is = StreamUtils.limitedInputStream(is, 2);
- is.read(null, 0, 1);
+ try {
+ is = StreamUtils.limitedInputStream(is, 2);
+ is.read(null, 0, 1);
+ } finally {
+ if (is != null) {
+ is.close();
+ }
+ }
}
@Test(expected = IndexOutOfBoundsException.class)
public void testReadWithWrongOffset() throws IOException {
InputStream is = StreamUtilsTest.class.getResourceAsStream("/StreamUtilsTest.txt");
- is = StreamUtils.limitedInputStream(is, 2);
- is.read(new byte[1], -1, 1);
+ try {
+ is = StreamUtils.limitedInputStream(is, 2);
+ is.read(new byte[1], -1, 1);
+ } finally {
+ if (is != null) {
+ is.close();
+ }
+ }
}
}
\ No newline at end of file