Author: toad
Date: 2006-07-26 17:21:06 +0000 (Wed, 26 Jul 2006)
New Revision: 9776
Modified:
trunk/freenet/src/freenet/client/async/SplitFileInserter.java
trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java
trunk/freenet/src/freenet/node/Version.java
trunk/freenet/src/freenet/node/fcp/ClientPut.java
Log:
906: If a segment is finished, finish it, even if the finished flag wasn't set.
Modified: trunk/freenet/src/freenet/client/async/SplitFileInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileInserter.java
2006-07-26 17:19:26 UTC (rev 9775)
+++ trunk/freenet/src/freenet/client/async/SplitFileInserter.java
2006-07-26 17:21:06 UTC (rev 9776)
@@ -230,11 +230,11 @@
}
public void segmentHasURIs(SplitFileInserterSegment segment) {
- if(haveSentMetadata) {
- return;
- }
-
synchronized(this) {
+ if(haveSentMetadata) {
+ return;
+ }
+
for(int i=0;i<segments.length;i++) {
if(!segments[i].hasURIs())
return;
@@ -257,9 +257,8 @@
// Create Metadata
m = new Metadata(splitfileAlgorithm, dataURIs,
checkURIs, segmentSize, checkSegmentSize, cm, dataLength, compressionCodec,
isMetadata, insertAsArchiveManifest);
}
+ haveSentMetadata = true;
}
- haveSentMetadata = true;
-
if(missingURIs) {
Logger.minor(this, "Missing URIs");
// Error
@@ -330,9 +329,17 @@
if(countDataBlocks > 32)
parent.onMajorProgress();
synchronized(this) {
- if(finished) return;
- for(int i=0;i<segments.length;i++)
- if(!segments[i].isFinished()) allGone = false;
+ if(finished) {
+ Logger.minor(this, "Finished already");
+ return;
+ }
+ for(int i=0;i<segments.length;i++) {
+ if(!segments[i].isFinished()) {
+ Logger.minor(this, "Segment not
finished: "+i+": "+segments[i]);
+ allGone = false;
+ break;
+ }
+ }
InserterException e = segment.getException();
if((e != null) && e.isFatal()) {
@@ -346,6 +353,7 @@
}
private void onAllFinished() {
+ Logger.minor(this, "All finished");
try {
// Finished !!
FailureCodeTracker tracker = new
FailureCodeTracker(true);
@@ -353,6 +361,7 @@
for(int i=0;i<segments.length;i++) {
InserterException e =
segments[i].getException();
if(e == null) continue;
+ Logger.minor(this, "Failure on segment "+i+" :
"+segments[i]+" : "+e, e);
allSucceeded = false;
if(e.errorCodes != null)
tracker.merge(e.errorCodes);
Modified: trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java
2006-07-26 17:19:26 UTC (rev 9775)
+++ trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java
2006-07-26 17:21:06 UTC (rev 9776)
@@ -268,11 +268,13 @@
}
public void start() throws InserterException {
+ boolean fin = true;
for(int i=0;i<dataBlockInserters.length;i++) {
if(dataBlocks[i] != null) { // else already finished on
creation
dataBlockInserters[i] =
new SingleBlockInserter(parent.parent,
dataBlocks[i], (short)-1, FreenetURI.EMPTY_CHK_URI, blockInsertContext, this,
false, CHKBlock.DATA_LENGTH, i, getCHKOnly, false, false, parent.token);
dataBlockInserters[i].schedule();
+ fin = false;
} else {
parent.parent.completedBlock(true);
}
@@ -284,10 +286,13 @@
Thread t = new Thread(new EncodeBlocksRunnable(),
"Blocks encoder");
t.setDaemon(true);
t.start();
+ fin = false;
} else if(encoded) {
for(int i=0;i<checkBlockInserters.length;i++) {
if(checkBlocks[i] == null)
parent.parent.completedBlock(true);
+ else
+ fin = false;
}
}
if(encoded) {
@@ -296,6 +301,7 @@
if(hasURIs) {
parent.segmentHasURIs(this);
}
+ if(fin) finish();
if(finished) {
parent.segmentFinished(this);
}
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-07-26 17:19:26 UTC (rev
9775)
+++ trunk/freenet/src/freenet/node/Version.java 2006-07-26 17:21:06 UTC (rev
9776)
@@ -18,7 +18,7 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 905;
+ private static final int buildNumber = 906;
/** Oldest build of Fred we will talk to */
private static final int oldLastGoodBuild = 870;
Modified: trunk/freenet/src/freenet/node/fcp/ClientPut.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientPut.java 2006-07-26 17:19:26 UTC
(rev 9775)
+++ trunk/freenet/src/freenet/node/fcp/ClientPut.java 2006-07-26 17:21:06 UTC
(rev 9776)
@@ -166,6 +166,7 @@
}
public void start() {
+ Logger.minor(this, "Starting "+this+" : "+identifier);
if(finished) return;
try {
inserter.start();