Author: toad
Date: 2009-03-26 15:27:26 +0000 (Thu, 26 Mar 2009)
New Revision: 26206

Modified:
   branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java
Log:
Remove from metadataPuttersByMetadata in onFailure


Modified: 
branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java    
2009-03-26 15:23:25 UTC (rev 26205)
+++ branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java    
2009-03-26 15:27:26 UTC (rev 26206)
@@ -1305,6 +1305,24 @@
        }
        
        public void onFailure(InsertException e, ClientPutState state, 
ObjectContainer container, ClientContext context) {
+               if(persistent()) {
+                       container.activate(metadataPuttersByMetadata, 2);
+               }
+               ClientPutState oldState;
+               synchronized(this) {
+                       Metadata token = (Metadata) state.getToken();
+                       if(persistent()) container.activate(token, 1);
+                       oldState = metadataPuttersByMetadata.remove(token);
+               }
+               if(persistent()) {
+                       container.store(metadataPuttersByMetadata);
+                       container.deactivate(metadataPuttersByMetadata, 1);
+                       state.removeFrom(container, context);
+                       if(oldState != state && oldState != null) {
+                               container.activate(oldState, 1);
+                               oldState.removeFrom(container, context);
+                       }
+               }
                fail(e, container, context);
        }
        

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

Reply via email to