Author: toad
Date: 2009-02-17 23:12:23 +0000 (Tue, 17 Feb 2009)
New Revision: 25671
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
Log:
Don't call *Finished unless persistent. Fix *Finished - store it!
Logging.
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2009-02-17 17:05:54 UTC (rev 25670)
+++ branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2009-02-17 23:12:23 UTC (rev 25671)
@@ -538,7 +538,8 @@
}
if(persistent) container.store(this);
parentFetcher.segmentFinished(SplitFileFetcherSegment.this, container, context);
- encoderFinished(container, context);
+ if(persistent)
+ encoderFinished(container, context);
return;
}
@@ -548,7 +549,8 @@
container.deactivate(parent, 1);
container.deactivate(context, 1);
}
- encoderFinished(container, context);
+ if(persistent)
+ encoderFinished(container, context);
return;
}
@@ -590,7 +592,8 @@
}
} catch (Throwable t) {
Logger.error(this, "Caught "+t, t);
- encoderFinished(container, context);
+ if(persistent)
+ encoderFinished(container, context);
}
}
@@ -707,7 +710,8 @@
container.deactivate(parentFetcher, 1);
}
} finally {
- encoderFinished(container, context);
+ if(persistent)
+ encoderFinished(container, context);
}
}
@@ -1541,6 +1545,7 @@
}
public void removeFrom(ObjectContainer container, ClientContext
context) {
+ if(logMINOR) Logger.minor(this, "removing "+this);
if(decodedData != null)
freeDecodedData(container);
removeSubSegments(container, context);
@@ -1578,7 +1583,11 @@
public void fetcherFinished(ObjectContainer container, ClientContext
context) {
synchronized(this) {
fetcherFinished = true;
- if(!encoderFinished) return;
+ if(!encoderFinished) {
+ container.store(this);
+ if(logMINOR) Logger.minor(this, "Fetcher
finished but encoder not finished on "+this);
+ return;
+ }
}
removeFrom(container, context);
}
@@ -1586,7 +1595,11 @@
private void encoderFinished(ObjectContainer container, ClientContext
context) {
synchronized(this) {
encoderFinished = true;
- if(!fetcherFinished) return;
+ if(!fetcherFinished) {
+ container.store(this);
+ if(logMINOR) Logger.minor(this, "Encoder
finished but fetcher not finished on "+this);
+ return;
+ }
}
removeFrom(container, context);
}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs