Author: toad
Date: 2008-07-23 16:43:11 +0000 (Wed, 23 Jul 2008)
New Revision: 21348

Modified:
   branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
Log:
Deactivate in right place. Might have been the cause of the mis-registration 
and NPE.

Modified: 
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java 
2008-07-23 16:39:35 UTC (rev 21347)
+++ branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java 
2008-07-23 16:43:11 UTC (rev 21348)
@@ -899,13 +899,11 @@
                if(v != null) {
                        for(int i=0;i<v.size();i++) {
                                SplitFileFetcherSubSegment sub = 
(SplitFileFetcherSubSegment) v.get(i);
+                               if(persistent)
+                                       container.activate(sub, 1);
                                RandomGrabArray rga = sub.getParentGrabArray();
                                if(sub.getParentGrabArray() == null) {
-                                       if(persistent)
-                                               container.activate(sub, 1);
                                        sub.schedule(container, context, false, 
false);
-                                       if(persistent)
-                                               container.deactivate(sub, 1);
                                } else {
 //                                     if(logMINOR) {
                                                if(persistent)
@@ -913,13 +911,13 @@
                                                if(!rga.contains(sub, 
container)) {
                                                        Logger.error(this, 
"Sub-segment has RGA but isn't registered to it!!: "+sub+" for "+rga);
                                                        sub.schedule(container, 
context, false, false);
-                                                       if(persistent)
-                                                               
container.deactivate(sub, 1);
                                                }
                                                if(persistent)
                                                        
container.deactivate(rga, 1);
 //                                     }
                                }
+                               if(persistent)
+                                       container.deactivate(sub, 1);
                        }
                }
                return true;


Reply via email to