Author: toad
Date: 2008-06-24 12:53:47 +0000 (Tue, 24 Jun 2008)
New Revision: 20634

Modified:
   branches/db4o/freenet/src/freenet/client/async/SplitFileInserter.java
Log:
Add some activation in SplitFileInserter.
It may not necessarily be activated until it is needed, i.e. when the SFIS 
completes a segment.

Modified: branches/db4o/freenet/src/freenet/client/async/SplitFileInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SplitFileInserter.java       
2008-06-24 11:50:27 UTC (rev 20633)
+++ branches/db4o/freenet/src/freenet/client/async/SplitFileInserter.java       
2008-06-24 12:53:47 UTC (rev 20634)
@@ -241,6 +241,7 @@
        }

        public void encodedSegment(SplitFileInserterSegment segment, 
ObjectContainer container, ClientContext context) {
+               container.activate(this, 1);
                if(logMINOR) Logger.minor(this, "Encoded segment 
"+segment.segNo+" of "+this);
                boolean ret = false;
                boolean encode;
@@ -261,6 +262,7 @@
        }

        public void segmentHasURIs(SplitFileInserterSegment segment, 
ObjectContainer container, ClientContext context) {
+               container.activate(this, 1);
                if(logMINOR) Logger.minor(this, "Segment has URIs: "+segment);
                synchronized(this) {
                        if(haveSentMetadata) {
@@ -280,6 +282,7 @@
        }

        private void encodeMetadata(ObjectContainer container, ClientContext 
context) {
+               container.activate(this, 1);
                boolean missingURIs;
                Metadata m = null;
                synchronized(this) {
@@ -362,6 +365,7 @@
        }

        public void segmentFinished(SplitFileInserterSegment segment, 
ObjectContainer container, ClientContext context) {
+               container.activate(this, 1);
                if(logMINOR) Logger.minor(this, "Segment finished: "+segment, 
new Exception("debug"));
                boolean allGone = true;
                if(countDataBlocks > 32)
@@ -391,6 +395,7 @@
        }

        public void segmentFetchable(SplitFileInserterSegment segment, 
ObjectContainer container) {
+               container.activate(this, 1);
                if(logMINOR) Logger.minor(this, "Segment fetchable: "+segment);
                synchronized(this) {
                        if(finished) return;
@@ -407,12 +412,14 @@
        }

        private void onAllFinished(ObjectContainer container, ClientContext 
context) {
+               container.activate(this, 1);
                if(logMINOR) Logger.minor(this, "All finished");
                try {
                        // Finished !!
                        FailureCodeTracker tracker = new 
FailureCodeTracker(true);
                        boolean allSucceeded = true;
                        for(int i=0;i<segments.length;i++) {
+                               container.activate(segments[i], 1);
                                InsertException e = segments[i].getException();
                                if(e == null) continue;
                                if(logMINOR) Logger.minor(this, "Failure on 
segment "+i+" : "+segments[i]+" : "+e, e);
@@ -434,6 +441,7 @@
        }

        public void cancel(ObjectContainer container, ClientContext context) {
+               container.activate(this, 1);
                synchronized(this) {
                        if(finished) return;
                        finished = true;
@@ -456,11 +464,13 @@

        /** Force the remaining blocks which haven't been encoded so far to be 
encoded ASAP. */
        public void forceEncode(ObjectContainer container, ClientContext 
context) {
+               container.activate(this, 1);
                Logger.minor(this, "Forcing encode on "+this);
                synchronized(this) {
                        forceEncode = true;
                }
                for(int i=0;i<segments.length;i++) {
+                       container.activate(segments[i], 1);
                        segments[i].forceEncode(container, context);
                }
        }


Reply via email to