Dear Wiki user,

You have subscribed to a wiki page or wiki category on "River Wiki" for change 
notification.

The "Serialization" page has been changed by PeterFirmstone:
http://wiki.apache.org/river/Serialization?action=diff&rev1=13&rev2=14

  {{{
  class SerializationBuilderImp extends Builder implements Serializable {
  
+     // Serial fields
-     // use a data object to hold the serial state to keep it simple, otherwise
-     // create a separate serializable private static class to hold it.
      private Map mutableMap = new HashMap();
+ 
-     // the built target object to work around readResolve issue.
+     // Build target object to work around readResolve issue.
-     private transient Map serialBuilt = null;
+     private transient volatile Map serialBuilt = null;
      
+     // Map interface method, delegates if constructed with serialization.
      public Object put(Object key, Object value){
          if ( serialBuilt != null ) return serialBuilt.put(key, value);
          return mutableMap.put(key, value);
      }
  
+     // Map interface method, delegates if constructed with serialization.
      public Set entrySet(){
          if ( serialBuilt != null ) return serialBuilt.entrySet();
          return mutableMap.entrySet();
@@ -164, +166 @@

          out.defaultWriteObject();
      }
  
+     // If deserialized state may have changed since, if another type of
+     // Map, apart from ImmutableMap, uses the same builder for example.
      private Object writeReplace() {
          if ( serialBuilt != null ) return serialBuilt;
          return this;

Reply via email to