Repository: thrift Updated Branches: refs/heads/master fa0796d33 -> f593dd3a9
THRIFT-3392:ZLib does not flush wrapper streams on close Client: Java Patch: Antonio GarcÃa Github Pull Request: This closes #655 commit e413701b53a4aa0069b5e5d873847c147308581e Author: Antonio GarcÃa-DomÃnguez <[email protected]> Date: 2015-10-18T13:16:02Z THRIFT-3392 Java TZlibTransport: ensure inflater/deflater are closed upon close() Project: http://git-wip-us.apache.org/repos/asf/thrift/repo Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/f593dd3a Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/f593dd3a Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/f593dd3a Branch: refs/heads/master Commit: f593dd3a96dddbcd4063690d20fee98d395bb360 Parents: fa0796d Author: Randy Abernethy <[email protected]> Authored: Sun Oct 18 08:04:16 2015 -0700 Committer: Randy Abernethy <[email protected]> Committed: Sun Oct 18 08:04:16 2015 -0700 ---------------------------------------------------------------------- .../apache/thrift/transport/TZlibTransport.java | 2 +- .../thrift/transport/TestTZlibTransport.java | 26 +++++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/thrift/blob/f593dd3a/lib/java/src/org/apache/thrift/transport/TZlibTransport.java ---------------------------------------------------------------------- diff --git a/lib/java/src/org/apache/thrift/transport/TZlibTransport.java b/lib/java/src/org/apache/thrift/transport/TZlibTransport.java index df4de13..e755aa5 100644 --- a/lib/java/src/org/apache/thrift/transport/TZlibTransport.java +++ b/lib/java/src/org/apache/thrift/transport/TZlibTransport.java @@ -74,11 +74,11 @@ public class TZlibTransport extends TIOStreamTransport { @Override public void close() { + super.close(); if (transport_.isOpen()) { transport_.close(); } } - } class TTransportInputStream extends InputStream { http://git-wip-us.apache.org/repos/asf/thrift/blob/f593dd3a/lib/java/test/org/apache/thrift/transport/TestTZlibTransport.java ---------------------------------------------------------------------- diff --git a/lib/java/test/org/apache/thrift/transport/TestTZlibTransport.java b/lib/java/test/org/apache/thrift/transport/TestTZlibTransport.java index fe8dd51..3d7f9c1 100644 --- a/lib/java/test/org/apache/thrift/transport/TestTZlibTransport.java +++ b/lib/java/test/org/apache/thrift/transport/TestTZlibTransport.java @@ -18,14 +18,19 @@ */ package org.apache.thrift.transport; -import junit.framework.TestCase; - -import java.io.*; +import java.io.BufferedOutputStream; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; import java.util.Arrays; import java.util.zip.DataFormatException; import java.util.zip.DeflaterOutputStream; import java.util.zip.InflaterInputStream; +import junit.framework.TestCase; + public class TestTZlibTransport extends TestCase { protected TTransport getTransport(TTransport underlying) { @@ -50,6 +55,21 @@ public class TestTZlibTransport extends TestCase { trans.close(); } + public void testCloseOpen() throws TTransportException { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + TTransport trans = getTransport(new TIOStreamTransport(baos)); + byte[] uncompressed = byteSequence(0, 245); + trans.write(uncompressed); + trans.close(); + final byte[] compressed = baos.toByteArray(); + + final byte[] buf = new byte[255]; + TTransport transRead = getTransport(new TIOStreamTransport(new ByteArrayInputStream(compressed))); + int readBytes = transRead.read(buf, 0, buf.length); + assertEquals(uncompressed.length, readBytes); + transRead.close(); + } + public void testRead() throws IOException, TTransportException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); DeflaterOutputStream deflaterOutputStream = new DeflaterOutputStream(baos);
