Author: toad
Date: 2009-02-17 16:29:41 +0000 (Tue, 17 Feb 2009)
New Revision: 25667
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java
Log:
Fix removing a splitfile insert not removing the blocks from storage
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java
===================================================================
---
branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java
2009-02-17 15:08:07 UTC (rev 25666)
+++
branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java
2009-02-17 16:29:41 UTC (rev 25667)
@@ -451,7 +451,7 @@
else
schedule(container, context);
if (finished) {
- parent.segmentFinished(this, container, context);
+ finish(container, context, parent);
}
if(job != null) {
splitfileAlgo.addToQueue(job, context.fecQueue,
container);
@@ -628,6 +628,20 @@
container.store(this);
}
parent.segmentFinished(this, container, context);
+ for(int i=0;i<dataBlocks.length;i++) {
+ if(dataBlocks[i] == null) continue;
+ container.activate(dataBlocks[i], 1);
+ dataBlocks[i].free();
+ dataBlocks[i].removeFrom(container);
+ dataBlocks[i] = null;
+ }
+ for(int i=0;i<checkBlocks.length;i++) {
+ if(checkBlocks[i] == null) continue;
+ container.activate(checkBlocks[i], 1);
+ checkBlocks[i].free();
+ checkBlocks[i].removeFrom(container);
+ checkBlocks[i] = null;
+ }
}
/**
@@ -651,6 +665,20 @@
container.deactivate(errors, 5);
}
parent.segmentFinished(this, container, context);
+ for(int i=0;i<dataBlocks.length;i++) {
+ if(dataBlocks[i] == null) continue;
+ container.activate(dataBlocks[i], 1);
+ dataBlocks[i].free();
+ dataBlocks[i].removeFrom(container);
+ dataBlocks[i] = null;
+ }
+ for(int i=0;i<checkBlocks.length;i++) {
+ if(checkBlocks[i] == null) continue;
+ container.activate(checkBlocks[i], 1);
+ checkBlocks[i].free();
+ checkBlocks[i].removeFrom(container);
+ checkBlocks[i] = null;
+ }
}
private void onEncode(int x, ClientCHK key, ObjectContainer container,
ClientContext context) {
@@ -748,6 +776,20 @@
container.activate(parent, 1);
}
parent.segmentFinished(this, container, context);
+ for(int i=0;i<dataBlocks.length;i++) {
+ if(dataBlocks[i] == null) continue;
+ container.activate(dataBlocks[i], 1);
+ dataBlocks[i].free();
+ dataBlocks[i].removeFrom(container);
+ dataBlocks[i] = null;
+ }
+ for(int i=0;i<checkBlocks.length;i++) {
+ if(checkBlocks[i] == null) continue;
+ container.activate(checkBlocks[i], 1);
+ checkBlocks[i].free();
+ checkBlocks[i].removeFrom(container);
+ checkBlocks[i] = null;
+ }
}
public void onTransition(ClientPutState oldState, ClientPutState
newState, ObjectContainer container) {
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs