Author: toad
Date: 2009-03-26 13:09:02 +0000 (Thu, 26 Mar 2009)
New Revision: 26197

Modified:
   branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java
Log:
Track transitions for metadata putters


Modified: 
branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java    
2009-03-26 13:03:00 UTC (rev 26196)
+++ branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java    
2009-03-26 13:09:02 UTC (rev 26197)
@@ -1306,7 +1306,31 @@
        }
        
        public void onTransition(ClientPutState oldState, ClientPutState 
newState, ObjectContainer container) {
+               Metadata m = (Metadata) oldState.getToken();
+               if(persistent()) {
+                       container.activate(m, 100);
+                       container.activate(metadataPuttersUnfetchable, 2);
+                       container.activate(metadataPuttersByMetadata, 2);
+               }
                synchronized(this) {
+                       if(metadataPuttersByMetadata.containsKey(m)) {
+                               metadataPuttersByMetadata.put(m, newState);
+                               if(logMINOR) Logger.minor(this, "Metadata 
putter transition: "+oldState+" -> "+newState);
+                               if(metadataPuttersUnfetchable.containsKey(m)) {
+                                       metadataPuttersUnfetchable.put(m, 
newState);
+                                       if(logMINOR) Logger.minor(this, 
"Unfetchable metadata putter transition: "+oldState+" -> "+newState);
+                               }
+                       } else {
+                               Logger.error(this, "onTransition() but 
metadataPuttersByMetadata does not contain metadata tag "+m+" for "+oldState+" 
should -> "+newState);
+                       }
+               }
+
+               if(persistent()) {
+                       container.deactivate(m, 100);
+                       container.deactivate(metadataPuttersUnfetchable, 2);
+                       container.deactivate(metadataPuttersByMetadata, 2);
+               }
+               synchronized(this) {
                        if(logMINOR) Logger.minor(this, "Transition: 
"+oldState+" -> "+newState);
                }
        }

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to