Author: toad
Date: 2006-01-31 23:19:14 +0000 (Tue, 31 Jan 2006)
New Revision: 7978

Modified:
   trunk/freenet/src/freenet/client/async/SplitFileInserter.java
   trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java
   trunk/freenet/src/freenet/node/Version.java
Log:
422:
Probably fixed the missing URIs error on inserting large files.

Modified: trunk/freenet/src/freenet/client/async/SplitFileInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileInserter.java       
2006-01-31 22:51:28 UTC (rev 7977)
+++ trunk/freenet/src/freenet/client/async/SplitFileInserter.java       
2006-01-31 23:19:14 UTC (rev 7978)
@@ -9,7 +9,6 @@
 import freenet.client.InserterContext;
 import freenet.client.InserterException;
 import freenet.client.Metadata;
-import freenet.client.async.SingleFileInserter.SplitHandler;
 import freenet.keys.ClientCHKBlock;
 import freenet.keys.FreenetURI;
 import freenet.support.Bucket;
@@ -129,7 +128,7 @@

                synchronized(this) {
                        for(int i=0;i<segments.length;i++) {
-                               if(!segments[i].isEncoded())
+                               if(!segments[i].hasURIs())
                                        return;
                        }
                }

Modified: trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java        
2006-01-31 22:51:28 UTC (rev 7977)
+++ trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java        
2006-01-31 23:19:14 UTC (rev 7978)
@@ -28,6 +28,7 @@
        private boolean encoded;
        private boolean finished;
        private boolean getCHKOnly;
+       private boolean hasURIs;
        private InserterException toThrow;
        private final FailureCodeTracker errors;
        private int blocksGotURI;
@@ -118,6 +119,7 @@
        public void onEncode(ClientKey key, ClientPutState state) {
                SingleBlockInserter sbi = (SingleBlockInserter)state;
                int x = sbi.token;
+               FreenetURI uri = key.getURI();
                synchronized(this) {
                        if(finished) return;
                        if(x >= dataBlocks.length) {
@@ -125,28 +127,30 @@
                                        Logger.normal(this, "Got uri twice for 
check block "+x+" on "+this);
                                        return;
                                }
-                               checkURIs[x-dataBlocks.length] = key.getURI();
+                               checkURIs[x-dataBlocks.length] = uri;
                        } else {
                                if(dataURIs[x] != null) {
                                        Logger.normal(this, "Got uri twice for 
data block "+x+" on "+this);
                                        return;
                                }
-                               dataURIs[x] = key.getURI();
+                               dataURIs[x] = uri;
                        }
                        blocksGotURI++;
                        if(blocksGotURI != dataBlocks.length + 
checkBlocks.length) return;
-               }
-               // Double check
-               for(int i=0;i<checkURIs.length;i++)
-                       if(checkURIs[i] == null) {
-                               Logger.error(this, "Check URI "+i+" is null");
-                               return;
+                       // Double check
+                       for(int i=0;i<checkURIs.length;i++) {
+                               if(checkURIs[i] == null) {
+                                       Logger.error(this, "Check URI "+i+" is 
null");
+                                       return;
+                               }
                        }
-               for(int i=0;i<dataURIs.length;i++) {
-                       if(dataURIs[i] == null) {
-                               Logger.error(this, "Data URI "+i+" is null");
-                               return;
+                       for(int i=0;i<dataURIs.length;i++) {
+                               if(dataURIs[i] == null) {
+                                       Logger.error(this, "Data URI "+i+" is 
null");
+                                       return;
+                               }
                        }
+                       hasURIs = true;
                }
                parent.segmentHasURIs(this);
        }
@@ -244,4 +248,8 @@
                // Ignore
                Logger.error(this, "Should not happen: 
onBlockSetFinished("+state+") on "+this);
        }
+
+       public boolean hasURIs() {
+               return hasURIs;
+       }
 }

Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-01-31 22:51:28 UTC (rev 
7977)
+++ trunk/freenet/src/freenet/node/Version.java 2006-01-31 23:19:14 UTC (rev 
7978)
@@ -20,7 +20,7 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       private static final int buildNumber = 421;
+       private static final int buildNumber = 422;

        /** Oldest build of Fred we will talk to */
        private static final int lastGoodBuild = 403;


Reply via email to