Author: toad
Date: 2008-06-28 14:50:58 +0000 (Sat, 28 Jun 2008)
New Revision: 20848
Modified:
branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java
branches/db4o/freenet/src/freenet/node/fcp/FCPConnectionHandler.java
branches/db4o/freenet/src/freenet/node/fcp/FCPServer.java
branches/db4o/freenet/src/freenet/node/fcp/GetFailedMessage.java
Log:
Activation and NPE fixes.
Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java 2008-06-28
14:50:21 UTC (rev 20847)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java 2008-06-28
14:50:58 UTC (rev 20848)
@@ -341,6 +341,17 @@
public void onSuccess(FetchResult result, ClientGetter state,
ObjectContainer container) {
Logger.minor(this, "Succeeded: "+identifier);
Bucket data = result.asBucket();
+ if(persistenceType == PERSIST_FOREVER) {
+ if(data != null)
+ container.activate(data, 5);
+ if(returnBucket != null)
+ container.activate(returnBucket, 5);
+ container.activate(client, 1);
+ if(tempFile != null)
+ container.activate(tempFile, 5);
+ if(targetFile != null)
+ container.activate(targetFile, 5);
+ }
if(returnBucket != data && !binaryBlob) {
boolean failed = true;
synchronized(this) {
@@ -438,8 +449,11 @@
container.activate(postFetchProtocolErrorMessage, 5);
if(handler != null)
handler.queue(postFetchProtocolErrorMessage);
- else
+ else {
+ if(persistenceType == PERSIST_FOREVER)
+ container.activate(client, 1);
client.queueClientRequestMessage(postFetchProtocolErrorMessage, 0, container);
+ }
}
}
@@ -450,6 +464,8 @@
if(persistenceType == ClientRequest.PERSIST_FOREVER)
container.set(this);
} else {
+ if(persistenceType == PERSIST_FOREVER)
+ container.activate(client, 1);
client.queueClientRequestMessage(msg, 0, container);
}
}
@@ -460,6 +476,8 @@
if(persistenceType == ClientRequest.PERSIST_FOREVER)
container.set(this);
}
+ if(persistenceType == PERSIST_FOREVER)
+ container.activate(client, 1);
client.queueClientRequestMessage(msg,
VERBOSITY_SPLITFILE_PROGRESS, container);
}
@@ -515,8 +533,10 @@
if(Logger.shouldLog(Logger.MINOR, this))
Logger.minor(this, "Caught "+e, e);
trySendDataFoundOrGetFailed(null, container);
- if(persistenceType == PERSIST_FOREVER)
+ if(persistenceType == PERSIST_FOREVER) {
+ container.activate(client, 1);
container.set(this);
+ }
finish(container);
client.notifyFailure(this, container);
}
@@ -546,6 +566,8 @@
}
// notify client that request was removed
FCPMessage msg = new
PersistentRequestRemovedMessage(getIdentifier(), global);
+ if(persistenceType == PERSIST_FOREVER)
+ container.activate(client, 1);
client.queueClientRequestMessage(msg, 0, container);
freeData(container);
@@ -657,6 +679,8 @@
returnBucket = null;
}
if(data != null) {
+ if(persistenceType == PERSIST_FOREVER)
+ container.activate(data, 5);
data.free();
if(persistenceType == PERSIST_FOREVER)
data.removeFrom(container);
Modified: branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java 2008-06-28
14:50:21 UTC (rev 20847)
+++ branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java 2008-06-28
14:50:58 UTC (rev 20848)
@@ -322,6 +322,7 @@
runner.queue(new DBJob() {
public void run(ObjectContainer container,
ClientContext context) {
+ container.activate(req, 1);
req.start(container, context);
}
Modified: branches/db4o/freenet/src/freenet/node/fcp/FCPConnectionHandler.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/FCPConnectionHandler.java
2008-06-28 14:50:21 UTC (rev 20847)
+++ branches/db4o/freenet/src/freenet/node/fcp/FCPConnectionHandler.java
2008-06-28 14:50:58 UTC (rev 20848)
@@ -237,6 +237,7 @@
server.core.clientContext.jobRunner.queue(new DBJob() {
public void
run(ObjectContainer container, ClientContext context) {
+
container.activate(getter, 1);
try {
getter.register(container, false, false);
} catch
(IdentifierCollisionException e) {
Modified: branches/db4o/freenet/src/freenet/node/fcp/FCPServer.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/FCPServer.java 2008-06-28
14:50:21 UTC (rev 20847)
+++ branches/db4o/freenet/src/freenet/node/fcp/FCPServer.java 2008-06-28
14:50:58 UTC (rev 20848)
@@ -904,6 +904,7 @@
core.clientContext.jobRunner.queue(new DBJob() {
public void run(ObjectContainer container,
ClientContext context) {
+ container.activate(req, 1);
try {
req.start(container, context);
} finally {
Modified: branches/db4o/freenet/src/freenet/node/fcp/GetFailedMessage.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/GetFailedMessage.java
2008-06-28 14:50:21 UTC (rev 20847)
+++ branches/db4o/freenet/src/freenet/node/fcp/GetFailedMessage.java
2008-06-28 14:50:58 UTC (rev 20848)
@@ -139,7 +139,8 @@
public void removeFrom(ObjectContainer container) {
if(redirectURI != null)
redirectURI.removeFrom(container); // URI belongs to
the parent which is also being removed.
- tracker.removeFrom(container);
+ if(tracker != null)
+ tracker.removeFrom(container);
container.delete(this);
}