diff options
Diffstat (limited to 'java/src/IceInternal/BasicStream.java')
-rw-r--r-- | java/src/IceInternal/BasicStream.java | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/java/src/IceInternal/BasicStream.java b/java/src/IceInternal/BasicStream.java index 8d8a999e5af..efc602aa773 100644 --- a/java/src/IceInternal/BasicStream.java +++ b/java/src/IceInternal/BasicStream.java @@ -9,6 +9,8 @@ package IceInternal; +import java.io.IOException; + public class BasicStream { public @@ -941,16 +943,31 @@ public class BasicStream { return null; } + ObjectInputStream in = null; try { InputStreamWrapper w = new InputStreamWrapper(sz, this); - ObjectInputStream in = new ObjectInputStream(_instance, w); + in = new ObjectInputStream(_instance, w); return (java.io.Serializable)in.readObject(); } catch(java.lang.Exception ex) { throw new Ice.MarshalException("cannot deserialize object", ex); } + finally + { + if(in != null) + { + try + { + in.close(); + } + catch (IOException ex) + { + throw new Ice.MarshalException("cannot deserialize object", ex); + } + } + } } public void |