Author: toad
Date: 2008-10-29 20:26:50 +0000 (Wed, 29 Oct 2008)
New Revision: 23193

Modified:
   branches/db4o/freenet/src/freenet/support/RandomGrabArray.java
Log:
Fix reqs[x.y] = null error, logging.


Modified: branches/db4o/freenet/src/freenet/support/RandomGrabArray.java
===================================================================
--- branches/db4o/freenet/src/freenet/support/RandomGrabArray.java      
2008-10-29 20:26:09 UTC (rev 23192)
+++ branches/db4o/freenet/src/freenet/support/RandomGrabArray.java      
2008-10-29 20:26:50 UTC (rev 23193)
@@ -72,7 +72,7 @@
                                        Logger.error(this, "Block "+i+" of 
"+blocks.length+" is wrong size: "+block.reqs.length+" should be "+BLOCK_SIZE);
                                }
                                for(int j=0;j<block.reqs.length;j++) {
-                                       if(x > index) break;
+                                       if(x >= index) break;
                                        if(block.reqs[j] == req) {
                                                if(logMINOR) Logger.minor(this, 
"Already contains "+req+" : "+this+" size now "+index);
                                                if(persistent) 
container.deactivate(block, 1);
@@ -87,6 +87,8 @@
                        }
                        int oldBlockLen = blocks.length;
                        if(blocks.length <= targetBlock) {
+                               if(logMINOR)
+                                       Logger.minor(this, "Adding blocks on 
"+this);
                                Block[] newBlocks = new Block[targetBlock + 1];
                                System.arraycopy(blocks, 0, newBlocks, 0, 
blocks.length);
                                for(int i=blocks.length;i<newBlocks.length;i++) 
{
@@ -295,6 +297,8 @@
                                } else if(blocks.length > 1 &&
                                                (((index + (BLOCK_SIZE/2)) / 
BLOCK_SIZE) + 1) < 
                                                blocks.length) {
+                                       if(logMINOR)
+                                               Logger.minor(this, "Shrinking 
blocks on "+this);
                                        Block[] newBlocks = new Block[((index + 
(BLOCK_SIZE/2)) / BLOCK_SIZE) + 1];
                                        System.arraycopy(blocks, 0, newBlocks, 
0, newBlocks.length);
                                        if(persistent) {


Reply via email to