Author: toad
Date: 2008-06-26 19:12:59 +0000 (Thu, 26 Jun 2008)
New Revision: 20780
Modified:
branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
branches/db4o/freenet/src/freenet/node/fcp/ClientPut.java
branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java
branches/db4o/freenet/src/freenet/node/fcp/ClientPutDir.java
branches/db4o/freenet/src/freenet/node/fcp/ClientRequest.java
Log:
Fix NPE sending Persistent* messages on connect
Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java 2008-06-26
19:03:26 UTC (rev 20779)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java 2008-06-26
19:12:59 UTC (rev 20780)
@@ -299,7 +299,7 @@
throw e;
}
if(persistenceType != PERSIST_CONNECTION && !noTags) {
- FCPMessage msg = persistentTagMessage();
+ FCPMessage msg =
persistentTagMessage(container);
client.queueClientRequestMessage(msg, 0,
container);
}
}
@@ -311,7 +311,7 @@
}
getter.start(container, context);
if(persistenceType != PERSIST_CONNECTION && !finished) {
- FCPMessage msg = persistentTagMessage();
+ FCPMessage msg =
persistentTagMessage(container);
client.queueClientRequestMessage(msg, 0,
container);
}
synchronized(this) {
@@ -466,7 +466,7 @@
}
if(!onlyData) {
if(includePersistentRequest) {
- FCPMessage msg = persistentTagMessage();
+ FCPMessage msg =
persistentTagMessage(container);
handler.queue(msg);
}
if(progressPending != null)
@@ -483,7 +483,12 @@
handler.queue(allDataPending);
}
- protected FCPMessage persistentTagMessage() {
+ protected FCPMessage persistentTagMessage(ObjectContainer container) {
+ if(persistenceType == PERSIST_FOREVER) {
+ container.activate(uri, 5);
+ container.activate(fctx, 1);
+ container.activate(client, 1);
+ }
return new PersistentGet(identifier, uri, verbosity,
priorityClass, returnType, persistenceType, targetFile, tempFile, clientToken,
client.isGlobalQueue, started, fctx.maxNonSplitfileRetries, binaryBlob,
fctx.maxOutputLength);
}
Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientPut.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientPut.java 2008-06-26
19:03:26 UTC (rev 20779)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientPut.java 2008-06-26
19:12:59 UTC (rev 20780)
@@ -338,7 +338,7 @@
client.lowLevelClient,
oldProgress, targetFilename, binaryBlob);
if(persistenceType != PERSIST_CONNECTION) {
- FCPMessage msg = persistentTagMessage();
+ FCPMessage msg = persistentTagMessage(null);
client.queueClientRequestMessage(msg, 0, null);
}
@@ -348,7 +348,7 @@
if(persistenceType != PERSIST_CONNECTION)
client.register(this, false, container);
if(persistenceType != PERSIST_CONNECTION && !noTags) {
- FCPMessage msg = persistentTagMessage();
+ FCPMessage msg = persistentTagMessage(container);
client.queueClientRequestMessage(msg, 0, container);
}
}
@@ -362,7 +362,7 @@
try {
putter.start(earlyEncode, false, container, context);
if(persistenceType != PERSIST_CONNECTION && !finished) {
- FCPMessage msg = persistentTagMessage();
+ FCPMessage msg =
persistentTagMessage(container);
client.queueClientRequestMessage(msg, 0,
container);
}
synchronized(this) {
@@ -428,7 +428,11 @@
return putter;
}
- protected FCPMessage persistentTagMessage() {
+ protected FCPMessage persistentTagMessage(ObjectContainer container) {
+ if(persistenceType == PERSIST_FOREVER) {
+ container.activate(publicURI, 5);
+ container.activate(clientMetadata, 5);
+ }
return new PersistentPut(identifier, publicURI, verbosity,
priorityClass, uploadFrom, targetURI,
persistenceType, origFilename,
clientMetadata.getMIMEType(), client.isGlobalQueue,
getDataSize(), clientToken, started,
ctx.maxInsertRetries, targetFilename, binaryBlob);
Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java
2008-06-26 19:03:26 UTC (rev 20779)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java
2008-06-26 19:12:59 UTC (rev 20780)
@@ -330,7 +330,7 @@
container.activate(this, 2);
}
if(includePersistentRequest) {
- FCPMessage msg = persistentTagMessage();
+ FCPMessage msg = persistentTagMessage(container);
handler.queue(msg);
}
Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientPutDir.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientPutDir.java
2008-06-26 19:03:26 UTC (rev 20779)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientPutDir.java
2008-06-26 19:12:59 UTC (rev 20780)
@@ -87,7 +87,7 @@
if(persistenceType != PERSIST_CONNECTION)
client.register(this, false, container);
if(persistenceType != PERSIST_CONNECTION && !noTags) {
- FCPMessage msg = persistentTagMessage();
+ FCPMessage msg = persistentTagMessage(container);
client.queueClientRequestMessage(msg, 0, container);
}
}
@@ -213,7 +213,7 @@
numberOfFiles = fileCount;
totalSize = size;
if(persistenceType != PERSIST_CONNECTION) {
- FCPMessage msg = persistentTagMessage();
+ FCPMessage msg = persistentTagMessage(container);
client.queueClientRequestMessage(msg, 0, container);
}
}
@@ -227,7 +227,7 @@
started = true;
if(logMINOR) Logger.minor(this, "Started "+putter);
if(persistenceType != PERSIST_CONNECTION && !finished) {
- FCPMessage msg = persistentTagMessage();
+ FCPMessage msg =
persistentTagMessage(container);
client.queueClientRequestMessage(msg, 0,
container);
}
if(persistenceType == PERSIST_FOREVER)
@@ -311,7 +311,12 @@
return fs;
}
- protected FCPMessage persistentTagMessage() {
+ protected FCPMessage persistentTagMessage(ObjectContainer container) {
+ if(persistenceType == PERSIST_FOREVER) {
+ container.activate(publicURI, 5);
+ container.activate(ctx, 1);
+ container.activate(manifestElements, 5);
+ }
return new PersistentPutDir(identifier, publicURI, verbosity,
priorityClass,
persistenceType, global, defaultName,
manifestElements, clientToken, started, ctx.maxInsertRetries, wasDiskPut);
}
Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientRequest.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientRequest.java
2008-06-26 19:03:26 UTC (rev 20779)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientRequest.java
2008-06-26 19:12:59 UTC (rev 20780)
@@ -313,7 +313,7 @@
public abstract boolean restart(ObjectContainer container,
ClientContext context);
- protected abstract FCPMessage persistentTagMessage();
+ protected abstract FCPMessage persistentTagMessage(ObjectContainer
container);
/**
* Called after a ModifyPersistentRequest.