Author: toad
Date: 2009-04-08 22:54:45 +0000 (Wed, 08 Apr 2009)
New Revision: 26665
Modified:
trunk/freenet/src/freenet/client/async/SplitFileFetcher.java
Log:
Handle cancelling a nearly finished splitfile without NPEing!
Modified: trunk/freenet/src/freenet/client/async/SplitFileFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileFetcher.java
2009-04-08 21:24:03 UTC (rev 26664)
+++ trunk/freenet/src/freenet/client/async/SplitFileFetcher.java
2009-04-08 22:54:45 UTC (rev 26665)
@@ -568,6 +568,15 @@
for(int i=0;i<segments.length;i++) {
if(logMINOR)
Logger.minor(this, "Cancelling segment "+i);
+ if(segments[i] == null) {
+ synchronized(this) {
+ if(finished) {
+ // Not unusual, if some of the
later segments are already finished when cancel() is called.
+ if(logMINOR) Logger.minor(this,
"Finished mid-cancel on "+this);
+ return;
+ }
+ }
+ }
if(persistent)
container.activate(segments[i], 1);
segments[i].cancel(container, context);
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs