Author: toad
Date: 2009-04-08 22:57:59 +0000 (Wed, 08 Apr 2009)
New Revision: 26666

Modified:
   trunk/freenet/src/freenet/client/async/SplitFileFetcher.java
Log:
Activation paranoia


Modified: trunk/freenet/src/freenet/client/async/SplitFileFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileFetcher.java        
2009-04-08 22:54:45 UTC (rev 26665)
+++ trunk/freenet/src/freenet/client/async/SplitFileFetcher.java        
2009-04-08 22:57:59 UTC (rev 26666)
@@ -563,11 +563,17 @@
        }
 
        public void cancel(ObjectContainer container, ClientContext context) {
-               if(persistent)
+               boolean persist = persistent;
+               if(persist)
                        container.activate(this, 1);
                for(int i=0;i<segments.length;i++) {
                        if(logMINOR)
                                Logger.minor(this, "Cancelling segment "+i);
+                       if(segments == null && persist && 
!container.ext().isActive(this)) {
+                               // FIXME is this normal? If so just reactivate.
+                               Logger.error(this, "Deactivated mid-cancel on 
"+this, new Exception("error"));
+                               container.activate(this, 1);
+                       }
                        if(segments[i] == null) {
                                synchronized(this) {
                                        if(finished) {
@@ -577,7 +583,7 @@
                                        }
                                }
                        }
-                       if(persistent)
+                       if(persist)
                                container.activate(segments[i], 1);
                        segments[i].cancel(container, context);
                }

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to