Author: nextgens
Date: 2008-04-04 06:12:05 +0000 (Fri, 04 Apr 2008)
New Revision: 18976

Modified:
   trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
   trunk/freenet/src/freenet/client/async/SplitFileInserter.java
Log:
Some sync fixes

Modified: trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java 
2008-04-04 06:05:54 UTC (rev 18975)
+++ trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java 
2008-04-04 06:12:05 UTC (rev 18976)
@@ -52,7 +52,7 @@
        final FetchContext fetchContext;
        final long maxBlockLength;
        /** Has the segment finished processing? Irreversible. */
-       private boolean finished;
+       private volatile boolean finished;
        private boolean startedDecode;
        /** Bucket to store the data retrieved, after it has been decoded */
        private Bucket decodedData;
@@ -244,8 +244,10 @@
                                
parentFetcher.segmentFinished(SplitFileFetcherSegment.this);
                } catch (IOException e) {
                        Logger.normal(this, "Caught bucket error?: "+e, e);
-                       finished = true;
-                       failureException = new 
FetchException(FetchException.BUCKET_ERROR);
+                       synchronized(this) {
+                               finished = true;
+                               failureException = new 
FetchException(FetchException.BUCKET_ERROR);
+                       }
                        
parentFetcher.segmentFinished(SplitFileFetcherSegment.this);
                        return;
                }

Modified: trunk/freenet/src/freenet/client/async/SplitFileInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileInserter.java       
2008-04-04 06:05:54 UTC (rev 18975)
+++ trunk/freenet/src/freenet/client/async/SplitFileInserter.java       
2008-04-04 06:12:05 UTC (rev 18976)
@@ -22,7 +22,7 @@

 public class SplitFileInserter implements ClientPutState {

-       private static boolean logMINOR;
+       private boolean logMINOR;
        final BaseClientPutter parent;
        final InsertContext ctx;
        final PutCompletionCallback cb;
@@ -38,7 +38,7 @@
        private boolean haveSentMetadata;
        final ClientMetadata cm;
        final boolean isMetadata;
-       private boolean finished;
+       private volatile boolean finished;
        private boolean fetchable;
        public final Object token;
        final boolean insertAsArchiveManifest;


Reply via email to