Author: toad
Date: 2008-06-26 01:22:37 +0000 (Thu, 26 Jun 2008)
New Revision: 20735
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileInserter.java
Log:
Another subtle activation problem
Modified: branches/db4o/freenet/src/freenet/client/async/SplitFileInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SplitFileInserter.java
2008-06-26 01:20:09 UTC (rev 20734)
+++ branches/db4o/freenet/src/freenet/client/async/SplitFileInserter.java
2008-06-26 01:22:37 UTC (rev 20735)
@@ -303,8 +303,8 @@
Metadata m = null;
synchronized(this) {
// Create metadata
- ClientCHK[] dataURIs = getDataCHKs();
- ClientCHK[] checkURIs = getCheckCHKs();
+ ClientCHK[] dataURIs = getDataCHKs(container);
+ ClientCHK[] checkURIs = getCheckCHKs(container);
if(logMINOR) Logger.minor(this, "Data URIs:
"+dataURIs.length+", check URIs: "+checkURIs.length);
@@ -347,7 +347,7 @@
return false;
}
- private ClientCHK[] getCheckCHKs() {
+ private ClientCHK[] getCheckCHKs(ObjectContainer container) {
// Copy check blocks from each segment into a FreenetURI[].
ClientCHK[] uris = new ClientCHK[countCheckBlocks];
int x = 0;
@@ -359,13 +359,18 @@
x += segURIs.length;
}
+ if(persistent) {
+ for(int i=0;i<uris.length;i++)
+ container.activate(uris[i], 5);
+ }
+
if(uris.length != x)
throw new IllegalStateException("Total is wrong");
return uris;
}
- private ClientCHK[] getDataCHKs() {
+ private ClientCHK[] getDataCHKs(ObjectContainer container) {
// Copy check blocks from each segment into a FreenetURI[].
ClientCHK[] uris = new ClientCHK[countDataBlocks];
int x = 0;
@@ -377,6 +382,11 @@
x += segURIs.length;
}
+ if(persistent) {
+ for(int i=0;i<uris.length;i++)
+ container.activate(uris[i], 5);
+ }
+
if(uris.length != x)
throw new IllegalStateException("Total is wrong");