Changeset: 8029d7368b5a for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/8029d7368b5a
Modified Files:
        src/main/java/org/monetdb/mcl/net/MapiSocket.java
Branch: onclient
Log Message:

Make sure the download stream isn't closed twice


diffs (37 lines):

diff --git a/src/main/java/org/monetdb/mcl/net/MapiSocket.java 
b/src/main/java/org/monetdb/mcl/net/MapiSocket.java
--- a/src/main/java/org/monetdb/mcl/net/MapiSocket.java
+++ b/src/main/java/org/monetdb/mcl/net/MapiSocket.java
@@ -1366,6 +1366,7 @@ public class MapiSocket { /* cannot (yet
                private final BlockInputStream.Raw rawIn;
                private final OutputStream out;
                private boolean endBlockSeen = false;
+               private boolean closed = false;
 
                DownloadStream(BlockInputStream.Raw rawIn, OutputStream out) {
                        this.rawIn = rawIn;
@@ -1373,7 +1374,7 @@ public class MapiSocket { /* cannot (yet
                }
 
                void nextBlock() throws IOException {
-                       if (endBlockSeen)
+                       if (endBlockSeen || closed)
                                return;
                        int ret = rawIn.readBlock();
                        if (ret < 0 || rawIn.wasEndBlock()) {
@@ -1383,13 +1384,15 @@ public class MapiSocket {       /* cannot (yet
 
                @Override
                public void close() throws IOException {
+                       if (closed)
+                               return;
+                       closed = true;
                        while (!endBlockSeen) {
                                nextBlock();
                        }
                        // Send acknowledgement to server
                        out.write('\n');
                        out.flush();
-                       // And await the acknowledgement of the acknowledgement
                        // Do whatever super has to do
                        super.close();
                }
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to