You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by ra...@apache.org on 2015/10/18 17:08:48 UTC

thrift git commit: THRIFT-3392:ZLib does not flush wrapper streams on close Client: Java Patch: Antonio García

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 <ny...@gmail.com>
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 <ra...@apache.org>
Authored: Sun Oct 18 08:04:16 2015 -0700
Committer: Randy Abernethy <ra...@apache.org>
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);