Author: toad
Date: 2008-09-27 17:47:10 +0000 (Sat, 27 Sep 2008)
New Revision: 22866
Modified:
branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
Log:
Activation
Modified: branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
2008-09-27 17:25:12 UTC (rev 22865)
+++ branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
2008-09-27 17:47:10 UTC (rev 22866)
@@ -110,10 +110,17 @@
try {
SplitHandler sh = new SplitHandler();
sh.start(fs, false, container, context);
- if(persistent)
- container.activate(cb, 1);
+ boolean wasActive = true;
+
+ if(persistent) {
+ wasActive =
container.ext().isActive(cb);
+ if(!wasActive)
+ container.activate(cb,
1);
+ }
cb.onTransition(this, sh, container);
sh.schedule(container, context);
+ if(!wasActive)
+ container.deactivate(cb, 1);
return;
} catch (ResumeException e) {
Logger.error(this, "Failed to restore:
"+e, e);
@@ -127,6 +134,12 @@
}
void onCompressed(CompressionOutput output, ObjectContainer container,
ClientContext context) {
+ boolean cbActive = true;
+ if(persistent) {
+ cbActive = container.ext().isActive(cb);
+ if(!cbActive)
+ container.activate(cb, 1);
+ }
if(started) {
Logger.error(this, "Already started, not starting
again", new Exception("error"));
return;
@@ -147,13 +160,14 @@
// Try to fail gracefully
cb.onFailure(new
InsertException(InsertException.INTERNAL_ERROR, t, null),
SingleFileInserter.this, container, context);
}
+ if(!cbActive)
+ container.deactivate(cb, 1);
}
void onCompressedInner(CompressionOutput output, ObjectContainer
container, ClientContext context) throws InsertException {
if(container != null) {
container.activate(block, 2);
container.activate(parent, 1);
- container.activate(cb, 1);
}
long origSize = block.getData().size();
Bucket bestCompressedData = output.data;
@@ -255,7 +269,6 @@
started = true;
if(persistent) {
container.store(this);
- container.deactivate(cb, 1);
container.deactivate(parent, 1);
}
return;
@@ -283,7 +296,6 @@
started = true;
if(persistent) {
container.store(this);
- container.deactivate(cb, 1);
container.deactivate(parent, 1);
}
}