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);