Author: toad
Date: 2008-02-16 13:44:14 +0000 (Sat, 16 Feb 2008)
New Revision: 17991

Modified:
   trunk/freenet/src/freenet/client/async/RequestCooldownQueue.java
Log:
Fix ArrayIndexOutOfBounds

Modified: trunk/freenet/src/freenet/client/async/RequestCooldownQueue.java
===================================================================
--- trunk/freenet/src/freenet/client/async/RequestCooldownQueue.java    
2008-02-16 13:36:10 UTC (rev 17990)
+++ trunk/freenet/src/freenet/client/async/RequestCooldownQueue.java    
2008-02-16 13:44:14 UTC (rev 17991)
@@ -65,11 +65,11 @@
        private synchronized void add(Key key, long removeTime) {
                logMINOR = Logger.shouldLog(Logger.MINOR, this);
                if(logMINOR)
-                       Logger.minor(this, "Adding key "+key+" remove time 
"+removeTime+" startPtr="+startPtr+" endPtr="+endPtr);
+                       Logger.minor(this, "Adding key "+key+" remove time 
"+removeTime+" startPtr="+startPtr+" endPtr="+endPtr+" 
keys.length="+keys.length);
                int ptr = endPtr;
                if(endPtr > startPtr) {
                        if(logMINOR) Logger.minor(this, "endPtr > startPtr");
-                       if(endPtr >= keys.length-1) {
+                       if(endPtr == keys.length-1) {
                                // Last key
                                if(ptr == 0) {
                                        // No room
@@ -95,7 +95,7 @@
                } else /* endPtr == startPtr : nothing queued */ {
                        if(logMINOR) Logger.minor(this, "endPtr == startPtr");
                        endPtr++;
-                       if(endPtr == keys.length-1) endPtr = 0;
+                       if(endPtr == keys.length) endPtr = 0;
                }
                if(logMINOR) Logger.minor(this, "Added at "+ptr+" 
startPtr="+startPtr+" endPtr="+endPtr);
                keys[ptr] = key;


Reply via email to