Author: toad
Date: 2008-12-17 20:36:39 +0000 (Wed, 17 Dec 2008)
New Revision: 24484
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
branches/db4o/freenet/src/freenet/keys/ClientCHK.java
branches/db4o/freenet/src/freenet/keys/NodeCHK.java
Log:
Remove the keys when we're done with them.
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2008-12-17 20:27:48 UTC (rev 24483)
+++ branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2008-12-17 20:36:39 UTC (rev 24484)
@@ -253,6 +253,8 @@
return;
}
dataRetries[blockNo] = 0; // Prevent healing of
successfully fetched block.
+ if(persistent)
+ dataKeys[blockNo].removeFrom(container);
dataKeys[blockNo] = null;
if(persistent)
container.activate(dataBuckets[blockNo], 1);
@@ -272,6 +274,8 @@
return;
}
checkRetries[blockNo] = 0; // Prevent healing
of successfully fetched block.
+ if(persistent)
+
checkKeys[blockNo].removeFrom(container);
checkKeys[blockNo] = null;
if(persistent)
container.activate(checkBuckets[blockNo], 1);
@@ -556,6 +560,8 @@
if(persistent)
dataBuckets[i].removeFrom(container);
dataBuckets[i] = null;
+ if(persistent && dataKeys[i] != null)
+ dataKeys[i].removeFrom(container);
dataKeys[i] = null;
}
for(int i=0;i<checkBuckets.length;i++) {
@@ -602,6 +608,8 @@
if(persistent)
checkBuckets[i].removeFrom(container);
checkBuckets[i] = null;
+ if(persistent && checkKeys[i] != null)
+ checkKeys[i].removeFrom(container);
checkKeys[i] = null;
}
}
@@ -685,12 +693,14 @@
Logger.error(this, "Block already
finished: "+blockNo);
return;
}
+ dataKeys[blockNo].removeFrom(container);
dataKeys[blockNo] = null;
} else if(blockNo < checkKeys.length + dataKeys.length)
{
if(checkKeys[blockNo-dataKeys.length] == null) {
Logger.error(this, "Check block already
finished: "+blockNo);
return;
}
+
checkKeys[blockNo-dataKeys.length].removeFrom(container);
checkKeys[blockNo-dataKeys.length] = null;
} else
Logger.error(this, "Unrecognized block number:
"+blockNo, new Exception("error"));
Modified: branches/db4o/freenet/src/freenet/keys/ClientCHK.java
===================================================================
--- branches/db4o/freenet/src/freenet/keys/ClientCHK.java 2008-12-17
20:27:48 UTC (rev 24483)
+++ branches/db4o/freenet/src/freenet/keys/ClientCHK.java 2008-12-17
20:36:39 UTC (rev 24484)
@@ -9,6 +9,8 @@
import java.net.MalformedURLException;
import java.util.Arrays;
+import com.db4o.ObjectContainer;
+
import freenet.support.Base64;
/**
@@ -185,4 +187,9 @@
public ClientKey cloneKey() {
return new ClientCHK(this);
}
+
+ public void removeFrom(ObjectContainer container) {
+ if(nodeKey != null) nodeKey.removeFrom(container);
+ container.delete(this);
+ }
}
Modified: branches/db4o/freenet/src/freenet/keys/NodeCHK.java
===================================================================
--- branches/db4o/freenet/src/freenet/keys/NodeCHK.java 2008-12-17 20:27:48 UTC
(rev 24483)
+++ branches/db4o/freenet/src/freenet/keys/NodeCHK.java 2008-12-17 20:36:39 UTC
(rev 24484)
@@ -7,6 +7,9 @@
import java.io.DataOutput;
import java.io.DataOutputStream;
import java.io.IOException;
+
+import com.db4o.ObjectContainer;
+
import freenet.support.Base64;
import freenet.support.Fields;
import freenet.support.Logger;
@@ -131,4 +134,8 @@
NodeCHK key = (NodeCHK) arg0;
return Fields.compareBytes(routingKey, key.routingKey);
}
+
+ public void removeFrom(ObjectContainer container) {
+ container.delete(this);
+ }
}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs