Author: toad
Date: 2008-06-19 14:54:35 +0000 (Thu, 19 Jun 2008)
New Revision: 20483

Modified:
   branches/db4o/freenet/src/freenet/client/ArchiveHandlerImpl.java
Log:
Pass in the copied data, not the data we've just freed.
Logging.

Modified: branches/db4o/freenet/src/freenet/client/ArchiveHandlerImpl.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/ArchiveHandlerImpl.java    
2008-06-19 14:52:59 UTC (rev 20482)
+++ branches/db4o/freenet/src/freenet/client/ArchiveHandlerImpl.java    
2008-06-19 14:54:35 UTC (rev 20483)
@@ -104,15 +104,24 @@

                        public void run() {
                                try {
+                                       final boolean logMINOR = 
Logger.shouldLog(Logger.MINOR, this);
+                                       if(logMINOR)
+                                               Logger.minor(this, "Extracting 
off-thread: "+tag.data+" for "+tag.handler.key+" element "+tag.element+" for 
"+tag.callback);
                                        tag.handler.extractToCache(tag.data, 
tag.actx, tag.element, proxyCallback, manager, null, context);
+                                       if(logMINOR)
+                                               Logger.minor(this, "Extracted");
                                        final Bucket data;
                                        if(proxyCallback.data == null)
                                                data = null;
                                        else {
                                                try {
+                                                       if(logMINOR)
+                                                               
Logger.minor(this, "Copying data...");
                                                        data = 
bf.makeBucket(proxyCallback.data.size());
                                                        
BucketTools.copy(proxyCallback.data, data);
                                                        
proxyCallback.data.free();
+                                                       if(logMINOR)
+                                                               
Logger.minor(this, "Copied and freed original");
                                                } catch (IOException e) {
                                                        throw new 
ArchiveFailureException("Failure copying data to persistent storage", e);
                                                }
@@ -120,11 +129,13 @@
                                        context.jobRunner.queue(new DBJob() {

                                                public void run(ObjectContainer 
container, ClientContext context) {
+                                                       if(logMINOR)
+                                                               
Logger.minor(this, "Calling callback for "+tag.data+" for "+tag.handler.key+" 
element "+tag.element+" for "+tag.callback);
                                                        container.delete(tag);
                                                        if(proxyCallback.data 
== null)
                                                                
tag.callback.notInArchive(container, context);
                                                        else
-                                                               
tag.callback.gotBucket(proxyCallback.data, container, context);
+                                                               
tag.callback.gotBucket(data, container, context);
                                                }

                                        }, NativeThread.NORM_PRIORITY, false);


Reply via email to