diff options
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/Ice/InputStream.java | 1 | ||||
-rw-r--r-- | java/src/Ice/InputStreamI.java | 17 | ||||
-rw-r--r-- | java/src/Ice/OutputStream.java | 1 | ||||
-rw-r--r-- | java/src/Ice/OutputStreamI.java | 18 |
4 files changed, 24 insertions, 13 deletions
diff --git a/java/src/Ice/InputStream.java b/java/src/Ice/InputStream.java index a272d560d2b..09261f9a208 100644 --- a/java/src/Ice/InputStream.java +++ b/java/src/Ice/InputStream.java @@ -54,4 +54,5 @@ public interface InputStream void skipSlice(); void finished(); + void destroy(); } diff --git a/java/src/Ice/InputStreamI.java b/java/src/Ice/InputStreamI.java index eeda0a961a2..bb67207e9be 100644 --- a/java/src/Ice/InputStreamI.java +++ b/java/src/Ice/InputStreamI.java @@ -29,10 +29,7 @@ public class InputStreamI implements InputStream finalize() throws Throwable { - if(_is != null) - { - _is.destroy(); - } + destroy(); } public Communicator @@ -222,8 +219,16 @@ public class InputStreamI implements InputStream { _is.readPendingObjects(); } - _is.destroy(); - _is = null; + } + + public void + destroy() + { + if(_is != null) + { + _is.destroy(); + _is = null; + } } private Communicator _communicator; diff --git a/java/src/Ice/OutputStream.java b/java/src/Ice/OutputStream.java index 2c8022b483e..529355f1281 100644 --- a/java/src/Ice/OutputStream.java +++ b/java/src/Ice/OutputStream.java @@ -51,4 +51,5 @@ public interface OutputStream void endSlice(); byte[] finished(); + void destroy(); } diff --git a/java/src/Ice/OutputStreamI.java b/java/src/Ice/OutputStreamI.java index 2c040f7acbe..c3b82a3f3cc 100644 --- a/java/src/Ice/OutputStreamI.java +++ b/java/src/Ice/OutputStreamI.java @@ -23,10 +23,7 @@ public class OutputStreamI implements OutputStream finalize() throws Throwable { - if(_os != null) - { - _os.destroy(); - } + destroy(); } public Communicator @@ -186,12 +183,19 @@ public class OutputStreamI implements OutputStream byte[] result = new byte[buf.limit()]; buf.get(result); - _os.destroy(); - _os = null; - return result; } + public void + destroy() + { + if(_os != null) + { + _os.destroy(); + _os = null; + } + } + private Communicator _communicator; private IceInternal.BasicOutputStream _os; private boolean _writeObjects; |