Author: toad
Date: 2005-11-29 20:33:41 +0000 (Tue, 29 Nov 2005)
New Revision: 7634

Modified:
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/node/RequestSender.java
   trunk/freenet/src/freenet/node/Version.java
Log:
248: (mandatory)
Bug caused idle-looping in RS's wait method.
Timed out was unrecognized in realPutCHK.

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2005-11-29 20:16:42 UTC (rev 
7633)
+++ trunk/freenet/src/freenet/node/Node.java    2005-11-29 20:33:41 UTC (rev 
7634)
@@ -548,6 +548,7 @@
                                Logger.error(this, "IS still running in 
putCHK!: "+is);
                                throw new 
LowLevelPutException(LowLevelPutException.INTERNAL_ERROR);
                        case InsertSender.GENERATED_REJECTED_OVERLOAD:
+                       case InsertSender.TIMED_OUT:
                                throw new 
LowLevelPutException(LowLevelPutException.REJECTED_OVERLOAD);
                        case InsertSender.ROUTE_NOT_FOUND:
                                throw new 
LowLevelPutException(LowLevelPutException.ROUTE_NOT_FOUND);

Modified: trunk/freenet/src/freenet/node/RequestSender.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestSender.java   2005-11-29 20:16:42 UTC 
(rev 7633)
+++ trunk/freenet/src/freenet/node/RequestSender.java   2005-11-29 20:33:41 UTC 
(rev 7634)
@@ -329,6 +329,7 @@
     }

     boolean hadROLastTimeWaited = false;
+    boolean prbWasNonNull = false;

     /**
      * Wait until either the transfer has started or we have a 
@@ -341,7 +342,10 @@
                        hadROLastTimeWaited = true;
                        return true;
                }
-            if(prb != null) return false;
+               if((!prbWasNonNull) && prb != null) {
+                       prbWasNonNull = true;
+                       return false;
+               }
             if(status != NOT_FINISHED) return false;
             try {
                 wait(10000);

Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2005-11-29 20:16:42 UTC (rev 
7633)
+++ trunk/freenet/src/freenet/node/Version.java 2005-11-29 20:33:41 UTC (rev 
7634)
@@ -20,10 +20,10 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       public static final int buildNumber = 247;
+       public static final int buildNumber = 248;

        /** Oldest build of Fred we will talk to */
-       public static final int lastGoodBuild = 246;
+       public static final int lastGoodBuild = 248;

        /** The highest reported build of fred */
        public static int highestSeenBuild = buildNumber;


Reply via email to