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