diff options
author | Eike Stepper | 2015-09-12 08:10:09 +0000 |
---|---|---|
committer | Eike Stepper | 2015-09-12 08:10:09 +0000 |
commit | 9e6ed1e96a0cb9036c0290a9f7c3ae4f9b7c0331 (patch) | |
tree | 42742821b4b38a185ed7e8edc2798efa1126eb2a | |
parent | 0473b85e5ffc6ce88f5fd597846be755a4761095 (diff) | |
download | cdo-9e6ed1e96a0cb9036c0290a9f7c3ae4f9b7c0331.tar.gz cdo-9e6ed1e96a0cb9036c0290a9f7c3ae4f9b7c0331.tar.xz cdo-9e6ed1e96a0cb9036c0290a9f7c3ae4f9b7c0331.zip |
[477255] Wrapped streams are not properly closed in Signal.runSync()
https://bugs.eclipse.org/bugs/show_bug.cgi?id=477255
-rw-r--r-- | plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/Signal.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/Signal.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/Signal.java index 6fa3eb3cac..d1b1c8c2da 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/Signal.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/Signal.java @@ -53,6 +53,10 @@ public abstract class Signal implements Runnable private BufferOutputStream bufferOutputStream; + private InputStream wrappedInputStream; + + private OutputStream wrappedOutputStream; + private Object currentStream; /** @@ -284,12 +288,12 @@ public abstract class Signal implements Runnable { if (closeInputStreamAfterMe()) { - IOUtil.closeSilent(bufferInputStream); + IOUtil.closeSilent(wrappedInputStream != null ? wrappedInputStream : bufferInputStream); } if (closeOutputStreamAfterMe()) { - IOUtil.closeSilent(bufferOutputStream); + IOUtil.closeSilent(wrappedOutputStream != null ? wrappedOutputStream : bufferOutputStream); } protocol.stopSignal(this, exception); @@ -326,7 +330,7 @@ public abstract class Signal implements Runnable TRACER.format("================ {0}: {1}", getOutputMeaning(), this); //$NON-NLS-1$ } - OutputStream wrappedOutputStream = wrapOutputStream(out); + wrappedOutputStream = wrapOutputStream(out); ExtendedDataOutputStream extended = ExtendedDataOutputStream.wrap(wrappedOutputStream); try @@ -357,7 +361,7 @@ public abstract class Signal implements Runnable TRACER.format("================ {0}: {1}", getInputMeaning(), this); //$NON-NLS-1$ } - InputStream wrappedInputStream = wrapInputStream(in); + wrappedInputStream = wrapInputStream(in); ExtendedDataInputStream extended = ExtendedDataInputStream.wrap(wrappedInputStream); try |