Author: toad
Date: 2009-01-29 22:51:29 +0000 (Thu, 29 Jan 2009)
New Revision: 25384
Modified:
branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java
Log:
Deactivation. May cause NPEs ...
Modified:
branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java
2009-01-29 21:52:46 UTC (rev 25383)
+++ branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java
2009-01-29 22:51:29 UTC (rev 25384)
@@ -143,6 +143,10 @@
}
}
insertedAllFiles(container);
+ if(persistent) {
+ container.deactivate(runningPutHandlers, 1);
+ container.deactivate(SimpleManifestPutter.this,
1);
+ }
}
public void onFailure(InsertException e, ClientPutState state,
ObjectContainer container, ClientContext context) {
@@ -151,6 +155,8 @@
if(persistent)
container.activate(SimpleManifestPutter.this,
1);
fail(e, container);
+ if(persistent)
+ container.deactivate(SimpleManifestPutter.this,
1);
}
public void onEncode(BaseClientKey key, ClientPutState state,
ObjectContainer container, ClientContext context) {
@@ -165,6 +171,9 @@
Metadata m =
new Metadata(Metadata.SIMPLE_REDIRECT,
null, null, key.getURI(), cm);
onMetadata(m, null, container, context);
+ if(persistent) {
+
container.deactivate(SimpleManifestPutter.this, 1);
+ }
}
}
@@ -219,15 +228,19 @@
}
}
if(persistent) {
+
container.deactivate(putHandlersWaitingForMetadata, 1);
container.deactivate(SimpleManifestPutter.this,
1);
}
}
@Override
public void addBlock(ObjectContainer container) {
- if(persistent)
+ if(persistent) {
container.activate(SimpleManifestPutter.this,
1);
+ }
SimpleManifestPutter.this.addBlock(container);
+ if(persistent)
+ container.deactivate(SimpleManifestPutter.this,
1);
}
@Override
@@ -235,6 +248,8 @@
if(persistent)
container.activate(SimpleManifestPutter.this,
1);
SimpleManifestPutter.this.addBlocks(num, container);
+ if(persistent)
+ container.deactivate(SimpleManifestPutter.this,
1);
}
@Override
@@ -242,6 +257,8 @@
if(persistent)
container.activate(SimpleManifestPutter.this,
1);
SimpleManifestPutter.this.completedBlock(dontNotify,
container, context);
+ if(persistent)
+ container.deactivate(SimpleManifestPutter.this,
1);
}
@Override
@@ -249,6 +266,8 @@
if(persistent)
container.activate(SimpleManifestPutter.this,
1);
SimpleManifestPutter.this.failedBlock(container,
context);
+ if(persistent)
+ container.deactivate(SimpleManifestPutter.this,
1);
}
@Override
@@ -256,6 +275,8 @@
if(persistent)
container.activate(SimpleManifestPutter.this,
1);
SimpleManifestPutter.this.fatallyFailedBlock(container,
context);
+ if(persistent)
+ container.deactivate(SimpleManifestPutter.this,
1);
}
@Override
@@ -263,6 +284,8 @@
if(persistent)
container.activate(SimpleManifestPutter.this,
1);
SimpleManifestPutter.this.addMustSucceedBlocks(blocks,
container);
+ if(persistent)
+ container.deactivate(SimpleManifestPutter.this,
1);
}
@Override
@@ -275,13 +298,19 @@
container.activate(SimpleManifestPutter.this,
1);
container.activate(waitingForBlockSets, 2);
}
+ boolean allBlockSets = false;
synchronized(SimpleManifestPutter.this) {
waitingForBlockSets.remove(this);
if(persistent)
container.store(waitingForBlockSets);
- if(!waitingForBlockSets.isEmpty()) return;
+ allBlockSets = waitingForBlockSets.isEmpty();
}
- SimpleManifestPutter.this.blockSetFinalized(container,
context);
+ if(allBlockSets)
+
SimpleManifestPutter.this.blockSetFinalized(container, context);
+ if(persistent) {
+ container.deactivate(waitingForBlockSets, 1);
+ container.deactivate(SimpleManifestPutter.this,
1);
+ }
}
@Override
@@ -289,12 +318,16 @@
if(persistent)
container.activate(SimpleManifestPutter.this,
1);
SimpleManifestPutter.this.onMajorProgress(container);
+ if(persistent)
+ container.deactivate(SimpleManifestPutter.this,
1);
}
public void onFetchable(ClientPutState state, ObjectContainer
container) {
if(persistent)
container.activate(SimpleManifestPutter.this,
1);
SimpleManifestPutter.this.onFetchable(this, container);
+ if(persistent)
+ container.deactivate(SimpleManifestPutter.this,
1);
}
@Override
@@ -828,9 +861,14 @@
}
private void complete(ObjectContainer container) {
- if(persistent())
+ boolean deactivateCB = false;
+ if(persistent()) {
+ deactivateCB = !container.ext().isActive(cb);
container.activate(cb, 1);
+ }
cb.onSuccess(this, container);
+ if(deactivateCB)
+ container.deactivate(cb, 1);
}
private void fail(InsertException e, ObjectContainer container) {
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs