Author: toad
Date: 2008-06-25 23:23:56 +0000 (Wed, 25 Jun 2008)
New Revision: 20724
Modified:
branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
Log:
Even more activation
Modified: branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
2008-06-25 22:55:39 UTC (rev 20723)
+++ branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
2008-06-25 23:23:56 UTC (rev 20724)
@@ -353,6 +353,9 @@
*/
void start(SimpleFieldSet fs, boolean forceMetadata,
ObjectContainer container, ClientContext context) throws ResumeException,
InsertException {
+ if(persistent)
+ container.activate(parent, 1);
+
boolean meta = metadata || forceMetadata;
// Don't include the booleans; wait for the callback.
@@ -406,6 +409,9 @@
}
public void onSuccess(ClientPutState state, ObjectContainer
container, ClientContext context) {
+ if(persistent) {
+ container.activate(block, 2);
+ }
logMINOR = Logger.shouldLog(Logger.MINOR, this);
if(logMINOR) Logger.minor(this, "onSuccess("+state+")
for "+this);
boolean lateStart = false;
@@ -446,6 +452,9 @@
}
public void onFailure(InsertException e, ClientPutState state,
ObjectContainer container, ClientContext context) {
+ if(persistent) {
+ container.activate(block, 1);
+ }
synchronized(this) {
if(finished){
if(freeData)
@@ -457,6 +466,10 @@
}
public void onMetadata(Metadata meta, ClientPutState state,
ObjectContainer container, ClientContext context) {
+ if(persistent) {
+ container.activate(cb, 1);
+ container.activate(block, 2);
+ }
InsertException e = null;
synchronized(this) {
if(finished) return;
@@ -550,6 +563,8 @@
if(logMINOR) Logger.minor(this, "Failing: "+e, e);
ClientPutState oldSFI = null;
ClientPutState oldMetadataPutter = null;
+ if(persistent)
+ container.activate(block, 2);
synchronized(this) {
if(finished){
if(freeData)
@@ -602,8 +617,11 @@
if(oldMetadataPutter != null)
oldMetadataPutter.cancel(container, context);
- if(freeData)
+ if(freeData) {
+ if(persistent)
+ container.activate(block, 2);
block.free(container);
+ }
}
public void onBlockSetFinished(ClientPutState state,
ObjectContainer container, ClientContext context) {
@@ -692,7 +710,7 @@
ClientPutState splitInserter;
synchronized(this) {
if(metaInsertStarted) return;
- if(persistent)
+ if(persistent && metadataPutter != null)
container.activate(metadataPutter, 1);
putter = metadataPutter;
if(putter == null) {