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);