Author: toad
Date: 2009-02-04 13:41:17 +0000 (Wed, 04 Feb 2009)
New Revision: 25539
Modified:
branches/db4o/freenet/src/freenet/client/async/SingleBlockInserter.java
Log:
Don't deactivate FreenetURI.EMPTY_CHK. Don't deactivate sourceData unless it
was deactivated when we started.
Modified:
branches/db4o/freenet/src/freenet/client/async/SingleBlockInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SingleBlockInserter.java
2009-02-04 13:40:22 UTC (rev 25538)
+++ branches/db4o/freenet/src/freenet/client/async/SingleBlockInserter.java
2009-02-04 13:41:17 UTC (rev 25539)
@@ -527,16 +527,27 @@
private BlockItem getBlockItem(ObjectContainer container, ClientContext
context) {
try {
- if(persistent) container.activate(sourceData, 1);
+ boolean deactivateBucket = false;
+ if(persistent) {
+ container.activate(uri, 1);
+ deactivateBucket =
!container.ext().isActive(sourceData);
+ if(deactivateBucket)
+ container.activate(sourceData, 1);
+ }
Bucket data = sourceData.createShadow();
FreenetURI u = uri;
- if(u.getKeyType().equals("CHK")) u =
FreenetURI.EMPTY_CHK_URI;
+ if(u.getKeyType().equals("CHK") && !persistent) u =
FreenetURI.EMPTY_CHK_URI;
else u = u.clone();
if(data == null) {
data =
context.tempBucketFactory.makeBucket(sourceData.size());
BucketTools.copy(sourceData, data);
}
- if(persistent) container.deactivate(sourceData, 1);
+ if(persistent) {
+ if(deactivateBucket)
+ container.deactivate(sourceData, 1);
+ if(uri != FreenetURI.EMPTY_CHK_URI)
+ container.deactivate(uri, 1);
+ }
return new BlockItem(this, data, isMetadata,
compressionCodec, sourceLength, u, hashCode(), persistent);
} catch (IOException e) {
fail(new InsertException(InsertException.BUCKET_ERROR,
e, null), container, context);
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs