Author: toad
Date: 2008-09-27 18:24:34 +0000 (Sat, 27 Sep 2008)
New Revision: 22868
Modified:
branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
Log:
More NPEs
Modified: branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
2008-09-27 18:24:13 UTC (rev 22867)
+++ branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
2008-09-27 18:24:34 UTC (rev 22868)
@@ -165,9 +165,12 @@
}
void onCompressedInner(CompressionOutput output, ObjectContainer
container, ClientContext context) throws InsertException {
+ boolean parentWasActive = true;
if(container != null) {
container.activate(block, 2);
- container.activate(parent, 1);
+ parentWasActive = container.ext().isActive(parent);
+ if(!parentWasActive)
+ container.activate(parent, 1);
}
long origSize = block.getData().size();
Bucket bestCompressedData = output.data;
@@ -224,7 +227,8 @@
if(persistent) {
container.store(this);
container.deactivate(cb, 1);
- container.deactivate(parent, 1);
+ if(!parentWasActive)
+ container.deactivate(parent, 1);
}
return;
}
@@ -269,7 +273,8 @@
started = true;
if(persistent) {
container.store(this);
- container.deactivate(parent, 1);
+ if(!parentWasActive)
+ container.deactivate(parent, 1);
}
return;
}
@@ -296,7 +301,8 @@
started = true;
if(persistent) {
container.store(this);
- container.deactivate(parent, 1);
+ if(!parentWasActive)
+ container.deactivate(parent, 1);
}
}
@@ -394,8 +400,12 @@
*/
void start(SimpleFieldSet fs, boolean forceMetadata,
ObjectContainer container, ClientContext context) throws ResumeException,
InsertException {
- if(persistent)
- container.activate(parent, 1);
+ boolean parentWasActive = true;
+ if(persistent) {
+ parentWasActive =
container.ext().isActive(parent);
+ if(!parentWasActive)
+ container.activate(parent, 1);
+ }
boolean meta = metadata || forceMetadata;
@@ -432,8 +442,11 @@
sfi = newSFI;
metadataPutter = newMetaPutter;
}
- if(persistent)
+ if(persistent) {
container.store(this);
+ if(!parentWasActive)
+ container.deactivate(parent, 1);
+ }
}
public SplitHandler() {