Author: toad
Date: 2008-06-05 22:57:27 +0000 (Thu, 05 Jun 2008)
New Revision: 20233

Modified:
   branches/db4o/freenet/src/freenet/client/async/BinaryBlobInserter.java
   branches/db4o/freenet/src/freenet/client/async/ClientPutState.java
   branches/db4o/freenet/src/freenet/client/async/ClientPutter.java
   branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
   
branches/db4o/freenet/src/freenet/client/async/MultiPutCompletionCallback.java
   branches/db4o/freenet/src/freenet/client/async/PutCompletionCallback.java
   branches/db4o/freenet/src/freenet/client/async/SimpleHealingQueue.java
   branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java
   branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
   branches/db4o/freenet/src/freenet/client/async/SplitFileInserter.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/SendableInsert.java
   branches/db4o/freenet/src/freenet/node/SimpleSendableInsert.java
Log:
More fixes

Modified: branches/db4o/freenet/src/freenet/client/async/BinaryBlobInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/BinaryBlobInserter.java      
2008-06-05 22:25:19 UTC (rev 20232)
+++ branches/db4o/freenet/src/freenet/client/async/BinaryBlobInserter.java      
2008-06-05 22:57:27 UTC (rev 20233)
@@ -77,12 +77,12 @@
                else throw new IllegalArgumentException("Unknown block type 
"+block.getClass()+" : "+block);
        }

-       public void cancel(ObjectContainer container) {
+       public void cancel(ObjectContainer container, ClientContext context) {
                for(int i=0;i<inserters.length;i++) {
                        if(inserters[i] != null)
                                inserters[i].cancel();
                }
-               parent.onFailure(new 
InsertException(InsertException.CANCELLED), this, container);
+               parent.onFailure(new 
InsertException(InsertException.CANCELLED), this, container, context);
        }

        public BaseClientPutter getParent() {
@@ -115,7 +115,7 @@
                        this.blockNum = i;
                }

-               public void onSuccess(ObjectContainer container) {
+               public void onSuccess(ObjectContainer container, ClientContext 
context) {
                        synchronized(this) {
                                if(inserters[blockNum] == null) return;
                                inserters[blockNum] = null;
@@ -123,23 +123,23 @@
                                succeededBlocks++;
                        }
                        parent.completedBlock(false);
-                       maybeFinish(container);
+                       maybeFinish(container, context);
                }

                // FIXME duplicated code from SingleBlockInserter
                // FIXME combine it somehow
-               public void onFailure(LowLevelPutException e, Object keyNum, 
ObjectContainer container) {
+               public void onFailure(LowLevelPutException e, Object keyNum, 
ObjectContainer container, ClientContext context) {
                        synchronized(BinaryBlobInserter.this) {
                                if(inserters[blockNum] == null) return;
                        }
                        if(parent.isCancelled()) {
-                               fail(new 
InsertException(InsertException.CANCELLED), true, container);
+                               fail(new 
InsertException(InsertException.CANCELLED), true, container, context);
                                return;
                        }
                        logMINOR = Logger.shouldLog(Logger.MINOR, 
BinaryBlobInserter.this);
                        switch(e.code) {
                        case LowLevelPutException.COLLISION:
-                               fail(new 
InsertException(InsertException.COLLISION), false, container);
+                               fail(new 
InsertException(InsertException.COLLISION), false, container, context);
                                break;
                        case LowLevelPutException.INTERNAL_ERROR:
                                errors.inc(InsertException.INTERNAL_ERROR);
@@ -162,7 +162,7 @@
                                if(logMINOR) Logger.minor(this, "Consecutive 
RNFs: "+consecutiveRNFs+" / "+consecutiveRNFsCountAsSuccess);
                                if(consecutiveRNFs == 
consecutiveRNFsCountAsSuccess) {
                                        if(logMINOR) Logger.minor(this, 
"Consecutive RNFs: "+consecutiveRNFs+" - counting as success");
-                                       onSuccess(container);
+                                       onSuccess(container, context);
                                        return;
                                }
                        } else
@@ -170,14 +170,14 @@
                        if(logMINOR) Logger.minor(this, "Failed: "+e);
                        retries++;
                        if((retries > maxRetries) && (maxRetries != -1)) {
-                               fail(InsertException.construct(errors), false, 
container);
+                               fail(InsertException.construct(errors), false, 
container, context);
                                return;
                        }
                        // Retry *this block*
                        this.schedule();
                }

-               private void fail(InsertException e, boolean fatal, 
ObjectContainer container) {
+               private void fail(InsertException e, boolean fatal, 
ObjectContainer container, ClientContext context) {
                        synchronized(BinaryBlobInserter.this) {
                                if(inserters[blockNum] == null) return;
                                inserters[blockNum] = null;
@@ -188,7 +188,7 @@
                                parent.fatallyFailedBlock();
                        else
                                parent.failedBlock();
-                       maybeFinish(container);
+                       maybeFinish(container, context);
                }

                public boolean shouldCache() {
@@ -196,7 +196,7 @@
                }
        }

-       public void maybeFinish(ObjectContainer container) {
+       public void maybeFinish(ObjectContainer container, ClientContext 
context) {
                boolean success;
                boolean wasFatal;
                synchronized(this) {
@@ -206,11 +206,11 @@
                        wasFatal = fatal;
                }
                if(success) {
-                       parent.onSuccess(this, container);
+                       parent.onSuccess(this, container, context);
                } else if(wasFatal)
-                       parent.onFailure(new 
InsertException(InsertException.FATAL_ERRORS_IN_BLOCKS, errors, null), this, 
container);
+                       parent.onFailure(new 
InsertException(InsertException.FATAL_ERRORS_IN_BLOCKS, errors, null), this, 
container, context);
                else
-                       parent.onFailure(new 
InsertException(InsertException.TOO_MANY_RETRIES_IN_BLOCKS, errors, null), 
this, container);
+                       parent.onFailure(new 
InsertException(InsertException.TOO_MANY_RETRIES_IN_BLOCKS, errors, null), 
this, container, context);
        }

 }

Modified: branches/db4o/freenet/src/freenet/client/async/ClientPutState.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientPutState.java  
2008-06-05 22:25:19 UTC (rev 20232)
+++ branches/db4o/freenet/src/freenet/client/async/ClientPutState.java  
2008-06-05 22:57:27 UTC (rev 20233)
@@ -19,7 +19,7 @@
        public abstract BaseClientPutter getParent();

        /** Cancel the request. */
-       public abstract void cancel(ObjectContainer container);
+       public abstract void cancel(ObjectContainer container, ClientContext 
context);

        /** Schedule the request. */
        public abstract void schedule(ObjectContainer container, ClientContext 
context) throws InsertException;

Modified: branches/db4o/freenet/src/freenet/client/async/ClientPutter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientPutter.java    
2008-06-05 22:25:19 UTC (rev 20232)
+++ branches/db4o/freenet/src/freenet/client/async/ClientPutter.java    
2008-06-05 22:57:27 UTC (rev 20233)
@@ -106,7 +106,7 @@
                                }
                        }
                        if(cancel) {
-                               onFailure(new 
InsertException(InsertException.CANCELLED), null, container);
+                               onFailure(new 
InsertException(InsertException.CANCELLED), null, container, context);
                                oldProgress = null;
                                return false;
                        }
@@ -114,14 +114,14 @@
                                cancel = cancelled;
                        }
                        if(cancel) {
-                               onFailure(new 
InsertException(InsertException.CANCELLED), null, container);
+                               onFailure(new 
InsertException(InsertException.CANCELLED), null, container, context);
                                oldProgress = null;
                                return false;
                        }
                        if(Logger.shouldLog(Logger.MINOR, this))
                                Logger.minor(this, "Starting insert: 
"+currentState);
                        if(currentState instanceof SingleFileInserter)
-                               
((SingleFileInserter)currentState).start(oldProgress);
+                               
((SingleFileInserter)currentState).start(oldProgress, container);
                        else
                                currentState.schedule(container, context);
                        synchronized(this) {
@@ -129,7 +129,7 @@
                                cancel = cancelled;
                        }
                        if(cancel) {
-                               onFailure(new 
InsertException(InsertException.CANCELLED), null, container);
+                               onFailure(new 
InsertException(InsertException.CANCELLED), null, container, context);
                                return false;
                        }
                } catch (InsertException e) {
@@ -171,7 +171,7 @@
                return true;
        }

-       public void onSuccess(ClientPutState state, ObjectContainer container) {
+       public void onSuccess(ClientPutState state, ObjectContainer container, 
ClientContext context) {
                synchronized(this) {
                        finished = true;
                        currentState = null;
@@ -185,7 +185,7 @@
                client.onSuccess(this);
        }

-       public void onFailure(InsertException e, ClientPutState state, 
ObjectContainer container) {
+       public void onFailure(InsertException e, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                synchronized(this) {
                        finished = true;
                        currentState = null;
@@ -198,7 +198,7 @@
                client.onMajorProgress();
        }

-       public void onEncode(BaseClientKey key, ClientPutState state, 
ObjectContainer container) {
+       public void onEncode(BaseClientKey key, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                synchronized(this) {
                        this.uri = key.getURI();
                        if(targetFilename != null)
@@ -218,8 +218,8 @@
                        if(startedStarting) return;
                        startedStarting = true;
                }
-               if(oldState != null) oldState.cancel(container);
-               onFailure(new InsertException(InsertException.CANCELLED), null, 
container);
+               if(oldState != null) oldState.cancel(container, context);
+               onFailure(new InsertException(InsertException.CANCELLED), null, 
container, context);
        }

        public synchronized boolean isFinished() {
@@ -238,7 +238,7 @@
                        Logger.error(this, "onTransition: cur="+currentState+", 
old="+oldState+", new="+newState);
        }

-       public void onMetadata(Metadata m, ClientPutState state, 
ObjectContainer container) {
+       public void onMetadata(Metadata m, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                Logger.error(this, "Got metadata on "+this+" from "+state+" 
(this means the metadata won't be inserted)");
        }


Modified: 
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2008-06-05 22:25:19 UTC (rev 20232)
+++ branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2008-06-05 22:57:27 UTC (rev 20233)
@@ -675,7 +675,7 @@
        public void callFailure(final SendableInsert put, final 
LowLevelPutException e, final Object keyNum, int prio, String name) {
                databaseExecutor.execute(new Runnable() {
                        public void run() {
-                               put.onFailure(e, keyNum, selectorContainer);
+                               put.onFailure(e, keyNum, selectorContainer, 
clientContext);
                                selectorContainer.commit();
                        }
                }, prio, name);
@@ -684,7 +684,7 @@
        public void callSuccess(final SendableInsert put, final Object keyNum, 
int prio, String name) {
                databaseExecutor.execute(new Runnable() {
                        public void run() {
-                               put.onSuccess(keyNum, selectorContainer);
+                               put.onSuccess(keyNum, selectorContainer, 
clientContext);
                                selectorContainer.commit();
                        }
                }, prio, name);

Modified: 
branches/db4o/freenet/src/freenet/client/async/MultiPutCompletionCallback.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/client/async/MultiPutCompletionCallback.java  
    2008-06-05 22:25:19 UTC (rev 20232)
+++ 
branches/db4o/freenet/src/freenet/client/async/MultiPutCompletionCallback.java  
    2008-06-05 22:57:27 UTC (rev 20233)
@@ -36,7 +36,7 @@
                finished = false;
        }

-       public void onSuccess(ClientPutState state, ObjectContainer container) {
+       public void onSuccess(ClientPutState state, ObjectContainer container, 
ClientContext context) {
                onBlockSetFinished(state, container);
                onFetchable(state, container);
                synchronized(this) {
@@ -45,10 +45,10 @@
                        if(!(waitingFor.isEmpty() && started))
                                return;
                }
-               complete(null, container);
+               complete(null, container, context);
        }

-       public void onFailure(InsertException e, ClientPutState state, 
ObjectContainer container) {
+       public void onFailure(InsertException e, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                synchronized(this) {
                        if(finished) return;
                        waitingFor.remove(state);
@@ -59,10 +59,10 @@
                                return;
                        }
                }
-               complete(e, container);
+               complete(e, container, context);
        }

-       private void complete(InsertException e, ObjectContainer container) {
+       private void complete(InsertException e, ObjectContainer container, 
ClientContext context) {
                synchronized(this) {
                        if(finished) return;
                        finished = true;
@@ -73,9 +73,9 @@
                        if(e == null) e = this.e;
                }
                if(e != null)
-                       cb.onFailure(e, this, container);
+                       cb.onFailure(e, this, container, context);
                else
-                       cb.onSuccess(this, container);
+                       cb.onSuccess(this, container, context);
        }

        public synchronized void addURIGenerator(ClientPutState ps) {
@@ -90,7 +90,7 @@
                waitingForFetchable.add(ps);
        }

-       public void arm(ObjectContainer container) {
+       public void arm(ObjectContainer container, ClientContext context) {
                boolean allDone;
                boolean allGotBlocks;
                synchronized(this) {
@@ -103,7 +103,7 @@
                        cb.onBlockSetFinished(this, container);
                }
                if(allDone) {
-                       complete(e, container);
+                       complete(e, container, context);
                }
        }

@@ -111,20 +111,20 @@
                return parent;
        }

-       public void onEncode(BaseClientKey key, ClientPutState state, 
ObjectContainer container) {
+       public void onEncode(BaseClientKey key, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                synchronized(this) {
                        if(state != generator) return;
                }
-               cb.onEncode(key, this, container);
+               cb.onEncode(key, this, container, context);
        }

-       public void cancel(ObjectContainer container) {
+       public void cancel(ObjectContainer container, ClientContext context) {
                ClientPutState[] states = new ClientPutState[waitingFor.size()];
                synchronized(this) {
                        states = (ClientPutState[]) waitingFor.toArray(states);
                }
                for(int i=0;i<states.length;i++)
-                       states[i].cancel(container);
+                       states[i].cancel(container, context);
        }

        public synchronized void onTransition(ClientPutState oldState, 
ClientPutState newState, ObjectContainer container) {
@@ -142,9 +142,9 @@
                }
        }

-       public synchronized void onMetadata(Metadata m, ClientPutState state, 
ObjectContainer container) {
+       public synchronized void onMetadata(Metadata m, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                if(generator == state) {
-                       cb.onMetadata(m, this, container);
+                       cb.onMetadata(m, this, container, context);
                } else {
                        Logger.error(this, "Got metadata for "+state);
                }

Modified: 
branches/db4o/freenet/src/freenet/client/async/PutCompletionCallback.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/PutCompletionCallback.java   
2008-06-05 22:25:19 UTC (rev 20232)
+++ branches/db4o/freenet/src/freenet/client/async/PutCompletionCallback.java   
2008-06-05 22:57:27 UTC (rev 20233)
@@ -11,11 +11,11 @@
  */
 public interface PutCompletionCallback {

-       public void onSuccess(ClientPutState state, ObjectContainer container);
+       public void onSuccess(ClientPutState state, ObjectContainer container, 
ClientContext context);

-       public void onFailure(InsertException e, ClientPutState state, 
ObjectContainer container);
+       public void onFailure(InsertException e, ClientPutState state, 
ObjectContainer container, ClientContext context);

-       public void onEncode(BaseClientKey usk, ClientPutState state, 
ObjectContainer container);
+       public void onEncode(BaseClientKey usk, ClientPutState state, 
ObjectContainer container, ClientContext context);

        public void onTransition(ClientPutState oldState, ClientPutState 
newState, ObjectContainer container);

@@ -23,7 +23,7 @@
         * the metadata won't be inserted. Won't be called if there isn't
         * any!
         */
-       public void onMetadata(Metadata m, ClientPutState state, 
ObjectContainer container);
+       public void onMetadata(Metadata m, ClientPutState state, 
ObjectContainer container, ClientContext context);

        /** Called when enough data has been inserted that the file can be
         * retrieved, even if not all data has been inserted yet. Note that this

Modified: branches/db4o/freenet/src/freenet/client/async/SimpleHealingQueue.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SimpleHealingQueue.java      
2008-06-05 22:25:19 UTC (rev 20232)
+++ branches/db4o/freenet/src/freenet/client/async/SimpleHealingQueue.java      
2008-06-05 22:57:27 UTC (rev 20233)
@@ -82,7 +82,7 @@
                // Do nothing
        }

-       public void onSuccess(ClientPutState state, ObjectContainer container) {
+       public void onSuccess(ClientPutState state, ObjectContainer container, 
ClientContext context) {
                SingleBlockInserter sbi = (SingleBlockInserter)state;
                Bucket data = (Bucket) sbi.getToken();
                synchronized(this) {
@@ -93,7 +93,7 @@
                data.free();
        }

-       public void onFailure(InsertException e, ClientPutState state, 
ObjectContainer container) {
+       public void onFailure(InsertException e, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                SingleBlockInserter sbi = (SingleBlockInserter)state;
                Bucket data = (Bucket) sbi.getToken();
                synchronized(this) {
@@ -104,7 +104,7 @@
                data.free();
        }

-       public void onEncode(BaseClientKey usk, ClientPutState state, 
ObjectContainer container) {
+       public void onEncode(BaseClientKey usk, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                // Ignore
        }

@@ -113,7 +113,7 @@
                Logger.error(this, "impossible: onTransition on 
SimpleHealingQueue from "+oldState+" to "+newState, new Exception("debug"));
        }

-       public void onMetadata(Metadata m, ClientPutState state, 
ObjectContainer container) {
+       public void onMetadata(Metadata m, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                // Should never happen
                Logger.error(this, "Got metadata on SimpleHealingQueue from 
"+state+": "+m, new Exception("debug"));
        }

Modified: 
branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java    
2008-06-05 22:25:19 UTC (rev 20232)
+++ branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java    
2008-06-05 22:57:27 UTC (rev 20233)
@@ -70,9 +70,9 @@
                private String targetInZip;
                private final Bucket data;

-               public void start() throws InsertException {
+               public void start(ObjectContainer container) throws 
InsertException {
                        if((origSFI == null) && (metadata != null)) return;
-                       origSFI.start(null);
+                       origSFI.start(null, container);
                        origSFI = null;
                }

@@ -84,7 +84,7 @@
                        return SimpleManifestPutter.this.finished || cancelled 
|| SimpleManifestPutter.this.cancelled;
                }

-               public void onSuccess(ClientPutState state, ObjectContainer 
container) {
+               public void onSuccess(ClientPutState state, ObjectContainer 
container, ClientContext context) {
                        logMINOR = Logger.shouldLog(Logger.MINOR, this);
                        if(logMINOR) Logger.minor(this, "Completed "+this);
                        SimpleManifestPutter.this.onFetchable(this, container);
@@ -97,26 +97,26 @@
                        insertedAllFiles();
                }

-               public void onFailure(InsertException e, ClientPutState state, 
ObjectContainer container) {
+               public void onFailure(InsertException e, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                        logMINOR = Logger.shouldLog(Logger.MINOR, this);
                        if(logMINOR) Logger.minor(this, "Failed: "+this+" - 
"+e, e);
                        fail(e);
                }

-               public void onEncode(BaseClientKey key, ClientPutState state, 
ObjectContainer container) {
+               public void onEncode(BaseClientKey key, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                        if(logMINOR) Logger.minor(this, "onEncode("+key+") for 
"+this);
                        if(metadata == null) {
                                // The file was too small to have its own 
metadata, we get this instead.
                                // So we make the key into metadata.
                                Metadata m =
                                        new Metadata(Metadata.SIMPLE_REDIRECT, 
key.getURI(), cm);
-                               onMetadata(m, null, container);
+                               onMetadata(m, null, container, context);
                        }
                }

                public void onTransition(ClientPutState oldState, 
ClientPutState newState, ObjectContainer container) {}

-               public void onMetadata(Metadata m, ClientPutState state, 
ObjectContainer container) {
+               public void onMetadata(Metadata m, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                        logMINOR = Logger.shouldLog(Logger.MINOR, this);
                        if(logMINOR) Logger.minor(this, "Assigning metadata: 
"+m+" for "+this+" from "+state,
                                        new Exception("debug"));
@@ -129,7 +129,7 @@
                                putHandlersWaitingForMetadata.remove(this);
                                if(!putHandlersWaitingForMetadata.isEmpty()) 
return;
                        }
-                       gotAllMetadata();
+                       gotAllMetadata(container);
                }

                public void addBlock() {
@@ -239,7 +239,7 @@
                // FIXME do something.
        }

-       public void start() throws InsertException {
+       public void start(ObjectContainer container) throws InsertException {
                logMINOR = Logger.shouldLog(Logger.MINOR, this);
                if (logMINOR)
                        Logger.minor(this, "Starting " + this);
@@ -250,7 +250,7 @@
                }
                try {
                        for (int i = 0; i < running.length; i++) {
-                               running[i].start();
+                               running[i].start(container);
                                if (logMINOR)
                                        Logger.minor(this, "Started " + i + " 
of " + running.length);
                                if (isFinished()) {
@@ -263,7 +263,7 @@
                                Logger.minor(this, "Started " + running.length 
+ " PutHandler's for " + this);
                        if (running.length == 0) {
                                insertedAllFiles = true;
-                               gotAllMetadata();
+                               gotAllMetadata(container);
                        }
                } catch (InsertException e) {
                        cancelAndFinish();
@@ -339,7 +339,7 @@
                return finished || cancelled;
        }

-       private void gotAllMetadata() {
+       private void gotAllMetadata(ObjectContainer container) {
                if(logMINOR) Logger.minor(this, "Got all metadata");
                HashMap namesToByteArrays = new HashMap();
                namesToByteArrays(putHandlersByName, namesToByteArrays);
@@ -362,11 +362,11 @@
                }
                baseMetadata =
                        
Metadata.mkRedirectionManifestWithMetadata(namesToByteArrays);
-               resolveAndStartBase();
+               resolveAndStartBase(container);

        }

-       private void resolveAndStartBase() {
+       private void resolveAndStartBase(ObjectContainer container) {
                Bucket bucket = null;
                synchronized(this) {
                        if(hasResolvedBase) return;
@@ -380,7 +380,7 @@
                                return;
                        } catch (MetadataUnresolvedException e) {
                                try {
-                                       resolve(e);
+                                       resolve(e, container);
                                } catch (IOException e1) {
                                        fail(new 
InsertException(InsertException.BUCKET_ERROR, e, null));
                                        return;
@@ -456,13 +456,13 @@
                        if(logMINOR) Logger.minor(this, "Inserting main 
metadata: "+metadataInserter);
                        this.metadataPuttersByMetadata.put(baseMetadata, 
metadataInserter);
                        metadataPuttersUnfetchable.put(baseMetadata, 
metadataInserter);
-                       metadataInserter.start(null);
+                       metadataInserter.start(null, container);
                } catch (InsertException e) {
                        fail(e);
                }
        }

-       private boolean resolve(MetadataUnresolvedException e) throws 
InsertException, IOException {
+       private boolean resolve(MetadataUnresolvedException e, ObjectContainer 
container) throws InsertException, IOException {
                Metadata[] metas = e.mustResolve;
                boolean mustWait = false;
                for(int i=0;i<metas.length;i++) {
@@ -482,9 +482,9 @@
                                synchronized(this) {
                                        this.metadataPuttersByMetadata.put(m, 
metadataInserter);
                                }
-                               metadataInserter.start(null);
+                               metadataInserter.start(null, container);
                        } catch (MetadataUnresolvedException e1) {
-                               resolve(e1);
+                               resolve(e1, container);
                        }
                }
                return mustWait;
@@ -557,7 +557,7 @@
                fail(new InsertException(InsertException.CANCELLED));
        }

-       public void onSuccess(ClientPutState state, ObjectContainer container) {
+       public void onSuccess(ClientPutState state, ObjectContainer container, 
ClientContext context) {
                logMINOR = Logger.shouldLog(Logger.MINOR, this);
                synchronized(this) {
                        metadataPuttersByMetadata.remove(state.getToken());
@@ -580,12 +580,12 @@
                complete();
        }

-       public void onFailure(InsertException e, ClientPutState state, 
ObjectContainer container) {
+       public void onFailure(InsertException e, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                logMINOR = Logger.shouldLog(Logger.MINOR, this);
                fail(e);
        }

-       public void onEncode(BaseClientKey key, ClientPutState state, 
ObjectContainer container) {
+       public void onEncode(BaseClientKey key, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                if(state.getToken() == baseMetadata) {
                        this.finalURI = key.getURI();
                        if(logMINOR) Logger.minor(this, "Got metadata key: 
"+finalURI);
@@ -595,7 +595,7 @@
                        Metadata m = (Metadata) state.getToken();
                        m.resolve(key.getURI());
                        if(logMINOR) Logger.minor(this, "Resolved "+m+" : 
"+key.getURI());
-                       resolveAndStartBase();
+                       resolveAndStartBase(container);
                }
        }

@@ -605,7 +605,7 @@
                }
        }

-       public void onMetadata(Metadata m, ClientPutState state, 
ObjectContainer container) {
+       public void onMetadata(Metadata m, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                // Ignore
        }


Modified: branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java      
2008-06-05 22:25:19 UTC (rev 20232)
+++ branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java      
2008-06-05 22:57:27 UTC (rev 20233)
@@ -4,6 +4,8 @@
 import java.net.MalformedURLException;
 import java.util.HashMap;

+import com.db4o.ObjectContainer;
+
 import freenet.client.InsertBlock;
 import freenet.client.InsertContext;
 import freenet.client.InsertException;
@@ -85,7 +87,7 @@
                logMINOR = Logger.shouldLog(Logger.MINOR, this);
        }

-       public void start(SimpleFieldSet fs) throws InsertException {
+       public void start(SimpleFieldSet fs, ObjectContainer container) throws 
InsertException {
                if(fs != null) {
                        String type = fs.get("Type");
                        if(type.equals("SplitHandler")) {
@@ -94,7 +96,7 @@
                                try {
                                        SplitHandler sh = new SplitHandler();
                                        sh.start(fs, false);
-                                       cb.onTransition(this, sh);
+                                       cb.onTransition(this, sh, container);
                                        sh.schedule();
                                        return;
                                } catch (ResumeException e) {
@@ -302,7 +304,7 @@

        private ClientPutState createInserter(BaseClientPutter parent, Bucket 
data, short compressionCodec, FreenetURI uri, 
                        InsertContext ctx, PutCompletionCallback cb, boolean 
isMetadata, int sourceLength, int token, boolean getCHKOnly, 
-                       boolean addToParent, boolean encodeCHK) throws 
InsertException {
+                       boolean addToParent, boolean encodeCHK, ObjectContainer 
container) throws InsertException {

                uri.checkInsertURI(); // will throw an exception if needed

@@ -318,7 +320,7 @@
                                new SingleBlockInserter(parent, data, 
compressionCodec, uri, ctx, cb, isMetadata, sourceLength, token, 
                                                getCHKOnly, addToParent, false, 
this.token);
                        if(encodeCHK)
-                               cb.onEncode(sbi.getBlock().getClientKey(), 
this);
+                               cb.onEncode(sbi.getBlock().getClientKey(), 
this, container);
                        return sbi;
                }

@@ -393,14 +395,14 @@
                        // Default constructor
                }

-               public synchronized void onTransition(ClientPutState oldState, 
ClientPutState newState) {
+               public synchronized void onTransition(ClientPutState oldState, 
ClientPutState newState, ObjectContainer container) {
                        if(oldState == sfi)
                                sfi = newState;
                        if(oldState == metadataPutter)
                                metadataPutter = newState;
                }

-               public void onSuccess(ClientPutState state) {
+               public void onSuccess(ClientPutState state, ObjectContainer 
container, ClientContext context) {
                        logMINOR = Logger.shouldLog(Logger.MINOR, this);
                        if(logMINOR) Logger.minor(this, "onSuccess("+state+") 
for "+this);
                        boolean lateStart = false;
@@ -430,12 +432,12 @@
                                }
                        }
                        if(lateStart)
-                               startMetadata();
+                               startMetadata(container, context);
                        else if(finished)
-                               cb.onSuccess(this);
+                               cb.onSuccess(this, container, context);
                }

-               public void onFailure(InsertException e, ClientPutState state) {
+               public void onFailure(InsertException e, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                        synchronized(this) {
                                if(finished){
                                        if(freeData)
@@ -443,10 +445,10 @@
                                        return;
                                }
                        }
-                       fail(e);
+                       fail(e, container, context);
                }

-               public void onMetadata(Metadata meta, ClientPutState state) {
+               public void onMetadata(Metadata meta, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                        InsertException e = null;
                        synchronized(this) {
                                if(finished) return;
@@ -468,11 +470,11 @@
                                }
                        }
                        if(reportMetadataOnly) {
-                               cb.onMetadata(meta, this);
+                               cb.onMetadata(meta, this, container, context);
                                return;
                        }
                        if(e != null) {
-                               onFailure(e, state);
+                               onFailure(e, state, container, context);
                                return;
                        }

@@ -483,7 +485,7 @@
                                Logger.error(this, "Impossible: "+e1, e1);
                                InsertException ex = new 
InsertException(InsertException.INTERNAL_ERROR, "MetadataUnresolvedException in 
SingleFileInserter.SplitHandler: "+e1, null);
                                ex.initCause(e1);
-                               fail(ex);
+                               fail(ex, container, context);
                                return;
                        }

@@ -502,7 +504,7 @@
                                                Logger.error(this, "Impossible 
(2): "+e1, e1);
                                                InsertException ex = new 
InsertException(InsertException.INTERNAL_ERROR, "MetadataUnresolvedException in 
SingleFileInserter.SplitHandler(2): "+e1, null);
                                                ex.initCause(e1);
-                                               fail(ex);
+                                               fail(ex, container, context);
                                                return;
                                        }
                                }
@@ -513,7 +515,7 @@
                                metadataBucket = 
BucketTools.makeImmutableBucket(ctx.bf, metaBytes);
                        } catch (IOException e1) {
                                InsertException ex = new 
InsertException(InsertException.BUCKET_ERROR, e1, null);
-                               fail(ex);
+                               fail(ex, container, context);
                                return;
                        }
                        InsertBlock newBlock = new InsertBlock(metadataBucket, 
null, block.desiredURI);
@@ -526,13 +528,13 @@
                                }
                                if(logMINOR) Logger.minor(this, "Putting 
metadata on "+metadataPutter+" from "+sfi+" 
("+((SplitFileInserter)sfi).getLength()+ ')');
                        } catch (InsertException e1) {
-                               cb.onFailure(e1, this);
+                               cb.onFailure(e1, this, container, context);
                                return;
                        }
-                       startMetadata();
+                       startMetadata(container, context);
                }

-               private void fail(InsertException e) {
+               private void fail(InsertException e, ObjectContainer container, 
ClientContext context) {
                        if(logMINOR) Logger.minor(this, "Failing: "+e, e);
                        ClientPutState oldSFI = null;
                        ClientPutState oldMetadataPutter = null;
@@ -547,25 +549,25 @@
                                oldMetadataPutter = metadataPutter;
                        }
                        if(oldSFI != null)
-                               oldSFI.cancel();
+                               oldSFI.cancel(container);
                        if(oldMetadataPutter != null)
-                               oldMetadataPutter.cancel();
+                               oldMetadataPutter.cancel(container);
                        finished = true;
-                       cb.onFailure(e, this);
+                       cb.onFailure(e, this, container, context);
                }

                public BaseClientPutter getParent() {
                        return parent;
                }

-               public void onEncode(BaseClientKey key, ClientPutState state) {
+               public void onEncode(BaseClientKey key, ClientPutState state, 
ObjectContainer container) {
                        synchronized(this) {
                                if(state != metadataPutter) return;
                        }
-                       cb.onEncode(key, this);
+                       cb.onEncode(key, this, container);
                }

-               public void cancel() {
+               public void cancel(ObjectContainer container) {
                        ClientPutState oldSFI = null;
                        ClientPutState oldMetadataPutter = null;
                        synchronized(this) {
@@ -573,15 +575,15 @@
                                oldMetadataPutter = metadataPutter;
                        }
                        if(oldSFI != null)
-                               oldSFI.cancel();
+                               oldSFI.cancel(container);
                        if(oldMetadataPutter != null)
-                               oldMetadataPutter.cancel();
+                               oldMetadataPutter.cancel(container);

                        if(freeData)
                                block.free();
                }

-               public void onBlockSetFinished(ClientPutState state) {
+               public void onBlockSetFinished(ClientPutState state, 
ObjectContainer container) {
                        synchronized(this) {
                                if(state == sfi)
                                        splitInsertSetBlocks = true;
@@ -590,11 +592,11 @@
                                if(!(splitInsertSetBlocks && 
metaInsertSetBlocks)) 
                                        return;
                        }
-                       cb.onBlockSetFinished(this);
+                       cb.onBlockSetFinished(this, container);
                }

-               public void schedule() throws InsertException {
-                       sfi.schedule();
+               public void schedule(ObjectContainer container, ClientContext 
context) throws InsertException {
+                       sfi.schedule(container, context);
                }

                public Object getToken() {
@@ -617,7 +619,7 @@
                        return fs;
                }

-               public void onFetchable(ClientPutState state) {
+               public void onFetchable(ClientPutState state, ObjectContainer 
container) {

                        logMINOR = Logger.shouldLog(Logger.MINOR, this);

@@ -646,10 +648,10 @@
                        }

                        if(meta)
-                               cb.onFetchable(this);
+                               cb.onFetchable(this, container);
                }

-               private void startMetadata() {
+               private void startMetadata(ObjectContainer container, 
ClientContext context) {
                        try {
                                ClientPutState putter;
                                ClientPutState splitInserter;
@@ -664,7 +666,7 @@
                                }
                                if(putter != null) {
                                        if(logMINOR) Logger.minor(this, 
"Starting metadata inserter: "+putter+" for "+this);
-                                       putter.schedule();
+                                       putter.schedule(container, context);
                                        if(logMINOR) Logger.minor(this, 
"Started metadata inserter: "+putter+" for "+this);
                                } else {
                                        // Get all the URIs ASAP so we can 
start to insert the metadata.
@@ -672,7 +674,7 @@
                                }
                        } catch (InsertException e1) {
                                Logger.error(this, "Failing "+this+" : "+e1, 
e1);
-                               fail(e1);
+                               fail(e1, container);
                                return;
                        }
                }
@@ -688,8 +690,8 @@
                        block.free();
        }

-       public void schedule() throws InsertException {
-               start(null);
+       public void schedule(ObjectContainer container) throws InsertException {
+               start(null, container);
        }

        public Object getToken() {

Modified: branches/db4o/freenet/src/freenet/client/async/SplitFileInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SplitFileInserter.java       
2008-06-05 22:25:19 UTC (rev 20232)
+++ branches/db4o/freenet/src/freenet/client/async/SplitFileInserter.java       
2008-06-05 22:57:27 UTC (rev 20233)
@@ -260,7 +260,7 @@
                        parent.onMajorProgress();
        }

-       public void segmentHasURIs(SplitFileInserterSegment segment, 
ObjectContainer container) {
+       public void segmentHasURIs(SplitFileInserterSegment segment, 
ObjectContainer container, ClientContext context) {
                if(logMINOR) Logger.minor(this, "Segment has URIs: "+segment);
                synchronized(this) {
                        if(haveSentMetadata) {
@@ -276,10 +276,10 @@
                }

                if(logMINOR) Logger.minor(this, "Have URIs from all segments");
-               encodeMetadata(container);
+               encodeMetadata(container, context);
        }

-       private void encodeMetadata(ObjectContainer container) {
+       private void encodeMetadata(ObjectContainer container, ClientContext 
context) {
                boolean missingURIs;
                Metadata m = null;
                synchronized(this) {
@@ -300,18 +300,18 @@
                if(missingURIs) {
                        if(logMINOR) Logger.minor(this, "Missing URIs");
                        // Error
-                       fail(new 
InsertException(InsertException.INTERNAL_ERROR, "Missing URIs after encoding", 
null), container);
+                       fail(new 
InsertException(InsertException.INTERNAL_ERROR, "Missing URIs after encoding", 
null), container, context);
                        return;
                } else
-                       cb.onMetadata(m, this, container);
+                       cb.onMetadata(m, this, container, context);
        }

-       private void fail(InsertException e, ObjectContainer container) {
+       private void fail(InsertException e, ObjectContainer container, 
ClientContext context) {
                synchronized(this) {
                        if(finished) return;
                        finished = true;
                }
-               cb.onFailure(e, this, container);
+               cb.onFailure(e, this, container, context);
        }

        // FIXME move this to somewhere
@@ -361,7 +361,7 @@
                return parent;
        }

-       public void segmentFinished(SplitFileInserterSegment segment, 
ObjectContainer container) {
+       public void segmentFinished(SplitFileInserterSegment segment, 
ObjectContainer container, ClientContext context) {
                if(logMINOR) Logger.minor(this, "Segment finished: "+segment, 
new Exception("debug"));
                boolean allGone = true;
                if(countDataBlocks > 32)
@@ -381,13 +381,13 @@

                        InsertException e = segment.getException();
                        if((e != null) && e.isFatal()) {
-                               cancel(container);
+                               cancel(container, context);
                        } else {
                                if(!allGone) return;
                        }
                        finished = true;
                }
-               onAllFinished(container);
+               onAllFinished(container, context);
        }

        public void segmentFetchable(SplitFileInserterSegment segment, 
ObjectContainer container) {
@@ -406,7 +406,7 @@
                cb.onFetchable(this, container);
        }

-       private void onAllFinished(ObjectContainer container) {
+       private void onAllFinished(ObjectContainer container, ClientContext 
context) {
                if(logMINOR) Logger.minor(this, "All finished");
                try {
                        // Finished !!
@@ -422,24 +422,24 @@
                                tracker.inc(e.getMode());
                        }
                        if(allSucceeded)
-                               cb.onSuccess(this, container);
+                               cb.onSuccess(this, container, context);
                        else {
-                               
cb.onFailure(InsertException.construct(tracker), this, container);
+                               
cb.onFailure(InsertException.construct(tracker), this, container, context);
                        }
                } catch (Throwable t) {
                        // We MUST tell the parent *something*!
                        Logger.error(this, "Caught "+t, t);
-                       cb.onFailure(new 
InsertException(InsertException.INTERNAL_ERROR), this, container);
+                       cb.onFailure(new 
InsertException(InsertException.INTERNAL_ERROR), this, container, context);
                }
        }

-       public void cancel(ObjectContainer container) {
+       public void cancel(ObjectContainer container, ClientContext context) {
                synchronized(this) {
                        if(finished) return;
                        finished = true;
                }
                for(int i=0;i<segments.length;i++)
-                       segments[i].cancel(container);
+                       segments[i].cancel(container, context);
        }

        public void schedule(ObjectContainer container, ClientContext context) 
throws InsertException {

Modified: 
branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java    
    2008-06-05 22:25:19 UTC (rev 20232)
+++ 
branches/db4o/freenet/src/freenet/client/async/SplitFileInserterSegment.java    
    2008-06-05 22:57:27 UTC (rev 20233)
@@ -449,7 +449,7 @@
                        onEncodedSegment(container, context);
                }
                if (hasURIs) {
-                       parent.segmentHasURIs(this, container);
+                       parent.segmentHasURIs(this, container, context);
                }
                boolean fetchable;
                synchronized (this) {
@@ -458,9 +458,9 @@
                if (fetchable)
                        parent.segmentFetchable(this, container);
                if (fin)
-                       finish(container);
+                       finish(container, context);
                if (finished) {
-                       parent.segmentFinished(this, container);
+                       parent.segmentFinished(this, container, context);
                }
        }

@@ -483,7 +483,7 @@
                        Logger.error(this, "Caught " + t + " while encoding " + 
this, t);
                        InsertException ex = new InsertException(
                                        InsertException.INTERNAL_ERROR, t, 
null);
-                       finish(ex, container);
+                       finish(ex, container, context);
                        return;
                }

@@ -505,7 +505,7 @@
                }
        }

-       private void finish(InsertException ex, ObjectContainer container) {
+       private void finish(InsertException ex, ObjectContainer container, 
ClientContext context) {
                if (logMINOR)
                        Logger.minor(this, "Finishing " + this + " with " + ex, 
ex);
                synchronized (this) {
@@ -514,20 +514,20 @@
                        finished = true;
                        toThrow = ex;
                }
-               parent.segmentFinished(this, container);
+               parent.segmentFinished(this, container, context);
        }

-       private void finish(ObjectContainer container) {
+       private void finish(ObjectContainer container, ClientContext context) {
                synchronized (this) {
                        if (finished)
                                return;
                        finished = true;
                        toThrow = InsertException.construct(errors);
                }
-               parent.segmentFinished(this, container);
+               parent.segmentFinished(this, container, context);
        }

-       public void onEncode(BaseClientKey k, ClientPutState state, 
ObjectContainer container) {
+       public void onEncode(BaseClientKey k, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                ClientCHK key = (ClientCHK) k;
                SingleBlockInserter sbi = (SingleBlockInserter) state;
                int x = sbi.token;
@@ -563,31 +563,31 @@
                        }
                        hasURIs = true;
                }
-               parent.segmentHasURIs(this, container);
+               parent.segmentHasURIs(this, container, context);
        }

-       public void onSuccess(ClientPutState state, ObjectContainer container) {
+       public void onSuccess(ClientPutState state, ObjectContainer container, 
ClientContext context) {
                if (parent.parent.isCancelled()) {
-                       parent.cancel(container);
+                       parent.cancel(container, context);
                        return;
                }
                SingleBlockInserter sbi = (SingleBlockInserter) state;
                int x = sbi.token;
-               completed(x, container);
+               completed(x, container, context);
        }

-       public void onFailure(InsertException e, ClientPutState state, 
ObjectContainer container) {
+       public void onFailure(InsertException e, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                if (parent.parent.isCancelled()) {
-                       parent.cancel(container);
+                       parent.cancel(container, context);
                        return;
                }
                SingleBlockInserter sbi = (SingleBlockInserter) state;
                int x = sbi.token;
                errors.merge(e);
-               completed(x, container);
+               completed(x, container, context);
        }

-       private void completed(int x, ObjectContainer container) {
+       private void completed(int x, ObjectContainer container, ClientContext 
context) {
                int total = innerCompleted(x);
                if (total == -1)
                        return;
@@ -596,7 +596,7 @@
                }
                if (total != dataBlockInserters.length + 
checkBlockInserters.length)
                        return;
-               finish(container);
+               finish(container, context);
        }

        /**
@@ -671,7 +671,7 @@
                }
        }

-       public void cancel(ObjectContainer container) {
+       public void cancel(ObjectContainer container, ClientContext context) {
                synchronized (this) {
                        if (finished)
                                return;
@@ -699,7 +699,7 @@
                                checkBlocks[i] = null;
                        }
                }
-               parent.segmentFinished(this, container);
+               parent.segmentFinished(this, container, context);
        }

        public void onTransition(ClientPutState oldState, ClientPutState 
newState, ObjectContainer container) {
@@ -707,7 +707,7 @@
                                + oldState + " -> " + newState);
        }

-       public void onMetadata(Metadata m, ClientPutState state, 
ObjectContainer container) {
+       public void onMetadata(Metadata m, ClientPutState state, 
ObjectContainer container, ClientContext context) {
                Logger.error(this, "Got onMetadata from " + state);
        }


Modified: branches/db4o/freenet/src/freenet/client/async/USKFetcher.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/USKFetcher.java      
2008-06-05 22:25:19 UTC (rev 20232)
+++ branches/db4o/freenet/src/freenet/client/async/USKFetcher.java      
2008-06-05 22:57:27 UTC (rev 20233)
@@ -9,6 +9,8 @@
 import java.util.LinkedList;
 import java.util.Vector;

+import com.db4o.ObjectContainer;
+
 import freenet.client.FetchContext;
 import freenet.keys.ClientSSKBlock;
 import freenet.keys.FreenetURI;
@@ -447,9 +449,9 @@
                return origUSK;
        }

-       public void schedule(long delay) {
+       public void schedule(long delay, ObjectContainer container, 
ClientContext context) {
                if (delay<=0) {
-                       schedule();
+                       schedule(container, context);
                } else {
                        uskManager.ticker.queueTimedJob(new Runnable() {
                                public void run() {
@@ -459,7 +461,7 @@
                }
        }

-       public void schedule() {
+       public void schedule(ObjectContainer container, ClientContext context) {
                USKAttempt[] attempts;
                long lookedUp = uskManager.lookup(origUSK);
                synchronized(this) {

Modified: branches/db4o/freenet/src/freenet/node/SendableInsert.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/SendableInsert.java  2008-06-05 
22:25:19 UTC (rev 20232)
+++ branches/db4o/freenet/src/freenet/node/SendableInsert.java  2008-06-05 
22:57:27 UTC (rev 20233)
@@ -5,6 +5,8 @@

 import com.db4o.ObjectContainer;

+import freenet.client.async.ClientContext;
+
 /**
  * Callback interface for a low level insert, which is immediately sendable. 
These
  * should be registered on the ClientRequestScheduler when we want to send 
them. It will
@@ -14,10 +16,10 @@
 public abstract class SendableInsert extends SendableRequest {

        /** Called when we successfully insert the data */
-       public abstract void onSuccess(Object keyNum, ObjectContainer 
container);
+       public abstract void onSuccess(Object keyNum, ObjectContainer 
container, ClientContext context);

        /** Called when we don't! */
-       public abstract void onFailure(LowLevelPutException e, Object keyNum, 
ObjectContainer container);
+       public abstract void onFailure(LowLevelPutException e, Object keyNum, 
ObjectContainer container, ClientContext context);

        public void internalError(Object keyNum, Throwable t, RequestScheduler 
sched, ObjectContainer container) {
                onFailure(new 
LowLevelPutException(LowLevelPutException.INTERNAL_ERROR, t.getMessage(), t), 
keyNum, container);

Modified: branches/db4o/freenet/src/freenet/node/SimpleSendableInsert.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/SimpleSendableInsert.java    
2008-06-05 22:25:19 UTC (rev 20232)
+++ branches/db4o/freenet/src/freenet/node/SimpleSendableInsert.java    
2008-06-05 22:57:27 UTC (rev 20233)
@@ -5,6 +5,7 @@

 import com.db4o.ObjectContainer;

+import freenet.client.async.ClientContext;
 import freenet.client.async.ClientRequestScheduler;
 import freenet.client.async.ClientRequester;
 import freenet.keys.CHKBlock;
@@ -44,13 +45,13 @@
                this.scheduler = scheduler;
        }

-       public void onSuccess(Object keyNum, ObjectContainer container) {
+       public void onSuccess(Object keyNum, ObjectContainer container, 
ClientContext context) {
                // Yay!
                if(Logger.shouldLog(Logger.MINOR, this))
                        Logger.minor(this, "Finished insert of "+block);
        }

-       public void onFailure(LowLevelPutException e, Object keyNum, 
ObjectContainer container) {
+       public void onFailure(LowLevelPutException e, Object keyNum, 
ObjectContainer container, ClientContext context) {
                if(Logger.shouldLog(Logger.MINOR, this))
                        Logger.minor(this, "Failed insert of "+block+": "+e);
        }


Reply via email to