Author: toad
Date: 2009-02-04 19:48:08 +0000 (Wed, 04 Feb 2009)
New Revision: 25561

Modified:
   branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java
Log:
Fix more NPEs (transient inserts)


Modified: 
branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java    
    2009-02-04 19:46:58 UTC (rev 25560)
+++ 
branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java    
    2009-02-04 19:48:08 UTC (rev 25561)
@@ -973,7 +973,7 @@
                                                if(checkBlocks[checkNum] != 
null) {
                                                        if(persistent) 
container.activate(checkBlocks[checkNum], 1);
                                                        
checkBlocks[checkNum].free();
-                                                       
checkBlocks[checkNum].removeFrom(container);
+                                                       if(persistent) 
checkBlocks[checkNum].removeFrom(container);
                                                        checkBlocks[checkNum] = 
null;
                                                } else {
                                                        Logger.error(this, 
"Check block "+checkNum+" failed on "+this+" but bucket is already nulled 
out!");
@@ -993,7 +993,7 @@
                                        if(checkBlocks[checkNum] != null) {
                                                if(persistent) 
container.activate(checkBlocks[checkNum], 1);
                                                checkBlocks[checkNum].free();
-                                               
checkBlocks[checkNum].removeFrom(container);
+                                               if(persistent) 
checkBlocks[checkNum].removeFrom(container);
                                                checkBlocks[checkNum] = null;
                                        } else {
                                                Logger.error(this, "Check block 
"+checkNum+" succeeded (sort of) on "+this+" but bucket is already nulled 
out!");
@@ -1031,7 +1031,7 @@
                                                if(dataBlocks[blockNum] != 
null) {
                                                        if(persistent) 
container.activate(dataBlocks[blockNum], 1);
                                                        
dataBlocks[blockNum].free();
-                                                       
dataBlocks[blockNum].removeFrom(container);
+                                                       if(persistent) 
dataBlocks[blockNum].removeFrom(container);
                                                        dataBlocks[blockNum] = 
null;
                                                } else {
                                                        Logger.error(this, 
"Data block "+blockNum+" failed on "+this+" but bucket is already nulled out!");
@@ -1051,7 +1051,7 @@
                                        if(dataBlocks[blockNum] != null && 
encoded) {
                                                if(persistent) 
container.activate(dataBlocks[blockNum], 1);
                                                dataBlocks[blockNum].free();
-                                               
dataBlocks[blockNum].removeFrom(container);
+                                               if(persistent) 
dataBlocks[blockNum].removeFrom(container);
                                                dataBlocks[blockNum] = null;
                                        } else {
                                                Logger.error(this, "Data block 
"+blockNum+" succeeded (sort of) on "+this+" but bucket is already nulled 
out!");
@@ -1108,7 +1108,7 @@
                                if(checkBlocks[checkNum] != null) {
                                        if(persistent) 
container.activate(checkBlocks[checkNum], 1);
                                        checkBlocks[checkNum].free();
-                                       
checkBlocks[checkNum].removeFrom(container);
+                                       if(persistent) 
checkBlocks[checkNum].removeFrom(container);
                                        checkBlocks[checkNum] = null;
                                } else {
                                        Logger.error(this, "Check block 
"+checkNum+" succeeded on "+this+" but bucket is already nulled out!");
@@ -1131,7 +1131,7 @@
                                if(encoded && dataBlocks[blockNum] != null) {
                                        if(persistent) 
container.activate(dataBlocks[blockNum], 1);
                                        dataBlocks[blockNum].free();
-                                       
dataBlocks[blockNum].removeFrom(container);
+                                       if(persistent) 
dataBlocks[blockNum].removeFrom(container);
                                        dataBlocks[blockNum] = null;
                                } else if(dataBlocks[blockNum] == null) {
                                        Logger.error(this, "Data block 
"+blockNum+" succeeded on "+this+" but bucket is already nulled out!");

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to