Author: toad
Date: 2008-12-24 19:14:34 +0000 (Wed, 24 Dec 2008)
New Revision: 24782

Modified:
   branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
   branches/db4o/freenet/src/freenet/client/async/USKInserter.java
Log:
Pass in and remember whether persistent in USKInserter. removeFrom() if 
necessary.


Modified: branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java      
2008-12-24 19:13:13 UTC (rev 24781)
+++ branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java      
2008-12-24 19:14:34 UTC (rev 24782)
@@ -390,7 +390,7 @@
                if(uri.getKeyType().equals("USK")) {
                        try {
                                return new USKInserter(parent, data, 
compressionCodec, uri, ctx, cb, isMetadata, sourceLength, token, 
-                                       getCHKOnly, addToParent, this.token, 
container, context, freeData);
+                                       getCHKOnly, addToParent, this.token, 
container, context, freeData, persistent);
                        } catch (MalformedURLException e) {
                                throw new 
InsertException(InsertException.INVALID_URI, e, null);
                        }

Modified: branches/db4o/freenet/src/freenet/client/async/USKInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/USKInserter.java     
2008-12-24 19:13:13 UTC (rev 24781)
+++ branches/db4o/freenet/src/freenet/client/async/USKInserter.java     
2008-12-24 19:14:34 UTC (rev 24782)
@@ -39,6 +39,7 @@
        final int token;
        final boolean getCHKOnly;
        public final Object tokenObject;
+       final boolean persistent;
        
        final InsertableUSK privUSK;
        final USK pubUSK;
@@ -113,7 +114,10 @@
                        parent.addMustSucceedBlocks(1, container);
                        parent.completedBlock(true, container, context);
                        cb.onSuccess(this, container, context);
-                       if(freeData) data.free();
+                       if(freeData) {
+                               data.free();
+                               if(persistent) data.removeFrom(container);
+                       }
                } else {
                        scheduleInsert(container, context);
                }
@@ -136,8 +140,10 @@
                        synchronized(this) {
                                finished = true;
                        }
-                       if(freeData)
+                       if(freeData) {
                                data.free();
+                               data.removeFrom(container);
+                       }
                }
        }
 
@@ -174,8 +180,9 @@
 
        public USKInserter(BaseClientPutter parent, Bucket data, short 
compressionCodec, FreenetURI uri, 
                        InsertContext ctx, PutCompletionCallback cb, boolean 
isMetadata, int sourceLength, int token, 
-                       boolean getCHKOnly, boolean addToParent, Object 
tokenObject, ObjectContainer container, ClientContext context, boolean 
freeData) throws MalformedURLException {
+                       boolean getCHKOnly, boolean addToParent, Object 
tokenObject, ObjectContainer container, ClientContext context, boolean 
freeData, boolean persistent) throws MalformedURLException {
                this.tokenObject = tokenObject;
+               this.persistent = persistent;
                this.parent = parent;
                this.data = data;
                this.compressionCodec = compressionCodec;
@@ -209,8 +216,10 @@
                        finished = true;
                        fetcher = null;
                }
-               if(freeData)
+               if(freeData) {
                        data.free();
+                       if(persistent) data.removeFrom(container);
+               }
                cb.onFailure(new InsertException(InsertException.CANCELLED), 
this, container, context);
        }
 

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

Reply via email to