You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by pe...@apache.org on 2013/07/01 11:19:05 UTC

svn commit: r1498337 - /river/jtsk/skunk/qa_refactor/trunk/src/net/jini/io/MarshalledInstance.java

Author: peter_firmstone
Date: Mon Jul  1 09:19:05 2013
New Revision: 1498337

URL: http://svn.apache.org/r1498337
Log:
Make MarshalledInstance an immutable object, rather than effectively immutable, so it is safely published when constructors and deserialization completes.

Modified:
    river/jtsk/skunk/qa_refactor/trunk/src/net/jini/io/MarshalledInstance.java

Modified: river/jtsk/skunk/qa_refactor/trunk/src/net/jini/io/MarshalledInstance.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/src/net/jini/io/MarshalledInstance.java?rev=1498337&r1=1498336&r2=1498337&view=diff
==============================================================================
--- river/jtsk/skunk/qa_refactor/trunk/src/net/jini/io/MarshalledInstance.java (original)
+++ river/jtsk/skunk/qa_refactor/trunk/src/net/jini/io/MarshalledInstance.java Mon Jul  1 09:19:05 2013
@@ -76,21 +76,21 @@ public class MarshalledInstance implemen
      * <code>null</code> then the object marshalled was a <code>null</code>
      * reference.
      */  
-    private byte[] objBytes = null;
+    private final byte[] objBytes;
  
     /**
      * @serial Bytes of location annotations, which are ignored by
      * <code>equals</code>.  If <code>locBytes</code> is null, there were no
      * non-<code>null</code> annotations during marshalling.
      */  
-    private byte[] locBytes = null;
+    private final byte[] locBytes;
  
     /**
      * @serial Stored hash code of contained object.
      *   
      * @see #hashCode
      */  
-    private int hash;
+    private final int hash;
 
     static final long serialVersionUID = -5187033771082433496L;
     
@@ -134,6 +134,8 @@ public class MarshalledInstance implemen
 
 	if (obj == null) {
 	    hash = 13;		// null hash for java.rmi.MarshalledObject
+            objBytes = null;
+            locBytes = null;
 	    return;
 	}
 	ByteArrayOutputStream bout = new ByteArrayOutputStream();