Author: toad
Date: 2008-12-24 19:13:13 +0000 (Wed, 24 Dec 2008)
New Revision: 24781

Modified:
   branches/db4o/freenet/src/freenet/client/async/InsertCompressor.java
   branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java
   branches/db4o/freenet/src/freenet/client/async/SimpleSingleFileFetcher.java
   branches/db4o/freenet/src/freenet/client/async/SingleBlockInserter.java
   branches/db4o/freenet/src/freenet/client/async/SplitFileFetcher.java
   
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSubSegment.java
   branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java
   branches/db4o/freenet/src/freenet/client/async/USKFetcher.java
   branches/db4o/freenet/src/freenet/node/fcp/DataCarryingMessage.java
Log:
removeFrom() as well as free()ing, or document why not


Modified: branches/db4o/freenet/src/freenet/client/async/InsertCompressor.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/InsertCompressor.java        
2008-12-24 12:12:22 UTC (rev 24780)
+++ branches/db4o/freenet/src/freenet/client/async/InsertCompressor.java        
2008-12-24 19:13:13 UTC (rev 24781)
@@ -131,6 +131,7 @@
                                if(resultSize < minSize) {
                                        bestCodec = comp;
                                        if(bestCompressedData != null)
+                                               // Don't need to removeFrom() : 
we haven't stored it.
                                                bestCompressedData.free();
                                        bestCompressedData = result;
                                        bestCompressedDataSize = resultSize;

Modified: 
branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java    
2008-12-24 12:12:22 UTC (rev 24780)
+++ branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java    
2008-12-24 19:13:13 UTC (rev 24781)
@@ -538,6 +538,7 @@
                                        createTarBucket(bucket, outputBucket) :
                                        createZipBucket(bucket, outputBucket));
                                bucket.free();
+                               if(persistent()) bucket.removeFrom(container);
                                
                                if(logMINOR) Logger.minor(this, "We are using 
"+archiveType);
                                

Modified: 
branches/db4o/freenet/src/freenet/client/async/SimpleSingleFileFetcher.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SimpleSingleFileFetcher.java 
2008-12-24 12:12:22 UTC (rev 24780)
+++ branches/db4o/freenet/src/freenet/client/async/SimpleSingleFileFetcher.java 
2008-12-24 19:13:13 UTC (rev 24781)
@@ -123,6 +123,7 @@
                }
                if(parent.isCancelled()) {
                        data.asBucket().free();
+                       if(persistent) data.asBucket().removeFrom(container);
                        onFailure(new FetchException(FetchException.CANCELLED), 
false, container, context);
                        return;
                }

Modified: 
branches/db4o/freenet/src/freenet/client/async/SingleBlockInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SingleBlockInserter.java     
2008-12-24 12:12:22 UTC (rev 24780)
+++ branches/db4o/freenet/src/freenet/client/async/SingleBlockInserter.java     
2008-12-24 19:13:13 UTC (rev 24781)
@@ -226,8 +226,10 @@
                if(persistent)
                        container.activate(cb, 1);
                cb.onFailure(e, this, container, context);
-               if(freeData)
+               if(freeData) {
                        sourceData.free();
+                       if(persistent) sourceData.removeFrom(container);
+               }
        }
 
        public ClientKeyBlock getBlock(ObjectContainer container, ClientContext 
context, boolean calledByCB) {
@@ -323,8 +325,10 @@
                        container.store(this);
                        container.activate(sourceData, 1);
                }
-               if(freeData)
-                       sourceData.free(); // FIXME removeFrom()??
+               if(freeData) {
+                       sourceData.free();
+                       if(persistent) sourceData.removeFrom(container);
+               }
                parent.completedBlock(false, container, context);
                if(logMINOR) Logger.minor(this, "Calling onSuccess for "+cb);
                cb.onSuccess(this, container, context);
@@ -346,8 +350,10 @@
                        container.activate(cb, 1);
                        container.activate(sourceData, 1);
                }
-               if(freeData)
+               if(freeData) {
                        sourceData.free();
+                       if(persistent) sourceData.removeFrom(container);
+               }
                super.unregister(container, context);
                cb.onFailure(new InsertException(InsertException.CANCELLED), 
this, container, context);
                if(persistent)

Modified: branches/db4o/freenet/src/freenet/client/async/SplitFileFetcher.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SplitFileFetcher.java        
2008-12-24 12:12:22 UTC (rev 24780)
+++ branches/db4o/freenet/src/freenet/client/async/SplitFileFetcher.java        
2008-12-24 19:13:13 UTC (rev 24781)
@@ -505,7 +505,10 @@
                                        cb.onFailure(new 
FetchException(FetchException.TOO_BIG, e.estimatedSize, false /* FIXME */, 
clientMetadata.getMIMEType()), this, container, context);
                                        return;
                                } finally {
-                                       if(orig != data) orig.free();
+                                       if(orig != data) {
+                                               orig.free();
+                                               if(persistent) 
orig.removeFrom(container);
+                                       }
                                }
                                count++;
                        }

Modified: 
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSubSegment.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSubSegment.java  
    2008-12-24 12:12:22 UTC (rev 24780)
+++ 
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSubSegment.java  
    2008-12-24 19:13:13 UTC (rev 24781)
@@ -406,6 +406,7 @@
                } else {
                        onFailure(new 
FetchException(FetchException.INVALID_METADATA, "Metadata where expected 
data"), token, container, context);
                        data.free();
+                       if(persistent) data.removeFrom(container);
                }
                if(persistent) {
                        container.deactivate(segment, 1);
@@ -421,6 +422,7 @@
                }
                if(parent.isCancelled()) {
                        data.free();
+                       if(persistent) data.removeFrom(container);
                        onFailure(new FetchException(FetchException.CANCELLED), 
token, container, context);
                        return;
                }

Modified: 
branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java    
    2008-12-24 12:12:22 UTC (rev 24780)
+++ 
branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java    
    2008-12-24 19:13:13 UTC (rev 24781)
@@ -555,6 +555,8 @@
                                if (dataBlockInserters[i] == null && 
dataBlocks[i] != null) {
                                        container.activate(dataBlocks[i], 1);
                                        dataBlocks[i].free();
+                                       if(persistent)
+                                               
dataBlocks[i].removeFrom(container);
                                        dataBlocks[i] = null;
                                }
                        }
@@ -742,6 +744,8 @@
                        if(persistent)
                                container.activate(checkBlocks[x], 1);
                        checkBlocks[x].free();
+                       if(persistent)
+                               checkBlocks[x].removeFrom(container);
                        checkBlocks[x] = null;
                } else {
                        if (dataBlockInserters[x] == null) {
@@ -754,6 +758,8 @@
                                if(persistent)
                                        container.activate(dataBlocks[x], 1);
                                dataBlocks[x].free();
+                               if(persistent)
+                                       dataBlocks[x].removeFrom(container);
                                dataBlocks[x] = null;
                        }
                }
@@ -816,7 +822,8 @@
                                if(persistent)
                                        container.activate(d, 5);
                                d.free();
-                               d.removeFrom(container);
+                               if(persistent)
+                                       d.removeFrom(container);
                                dataBlocks[i] = null;
                        }
                }

Modified: branches/db4o/freenet/src/freenet/client/async/USKFetcher.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/USKFetcher.java      
2008-12-24 12:12:22 UTC (rev 24780)
+++ branches/db4o/freenet/src/freenet/client/async/USKFetcher.java      
2008-12-24 19:13:13 UTC (rev 24781)
@@ -596,7 +596,7 @@
 
        public synchronized void freeLastData() {
                if(lastRequestData == null) return;
-               lastRequestData.free();
+               lastRequestData.free(); // USKFetcher's cannot be persistent, 
so no need to removeFrom()
                lastRequestData = null;
        }
 

Modified: branches/db4o/freenet/src/freenet/node/fcp/DataCarryingMessage.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/DataCarryingMessage.java 
2008-12-24 12:12:22 UTC (rev 24780)
+++ branches/db4o/freenet/src/freenet/node/fcp/DataCarryingMessage.java 
2008-12-24 19:13:13 UTC (rev 24781)
@@ -54,7 +54,7 @@
        protected void writeData(OutputStream os) throws IOException {
                long len = dataLength();
                if(len > 0) BucketTools.copyTo(bucket, os, len);
-               if(freeOnSent) bucket.free();
+               if(freeOnSent) bucket.free(); // Always transient so no 
removeFrom() needed.
        }
        
        @Override

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

Reply via email to