summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/IncomingBase.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/IceInternal/IncomingBase.java')
-rw-r--r--java/src/IceInternal/IncomingBase.java17
1 files changed, 10 insertions, 7 deletions
diff --git a/java/src/IceInternal/IncomingBase.java b/java/src/IceInternal/IncomingBase.java
index 0551a37c388..40a6ca1968e 100644
--- a/java/src/IceInternal/IncomingBase.java
+++ b/java/src/IceInternal/IncomingBase.java
@@ -62,7 +62,7 @@ public class IncomingBase
// penalty! We must make sure that __destroy() is called instead,
// to reclaim resources.
//
- public void
+ public synchronized void
__destroy()
{
if(_os != null)
@@ -103,13 +103,16 @@ public class IncomingBase
_compress = compress;
- if(_os == null)
- {
- _os = new BasicStream(instance);
- }
- else
+ synchronized(this)
{
- _os.reset();
+ if(_os == null)
+ {
+ _os = new BasicStream(instance);
+ }
+ else
+ {
+ _os.reset();
+ }
}
_connection = connection;