Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2015-09-12 08:10:09 +0000
committerEike Stepper2015-09-12 08:10:09 +0000
commit9e6ed1e96a0cb9036c0290a9f7c3ae4f9b7c0331 (patch)
tree42742821b4b38a185ed7e8edc2798efa1126eb2a
parent0473b85e5ffc6ce88f5fd597846be755a4761095 (diff)
downloadcdo-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.java12
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

Back to the top