Author: toad
Date: 2006-12-19 15:00:43 +0000 (Tue, 19 Dec 2006)
New Revision: 11482
Modified:
trunk/freenet/src/freenet/node/fcp/ClientGet.java
trunk/freenet/src/freenet/node/fcp/ClientPut.java
Log:
Really fix serialization of requests
Modified: trunk/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientGet.java 2006-12-19 13:57:34 UTC
(rev 11481)
+++ trunk/freenet/src/freenet/node/fcp/ClientGet.java 2006-12-19 15:00:43 UTC
(rev 11482)
@@ -21,7 +21,6 @@
import freenet.client.events.SplitfileProgressEvent;
import freenet.keys.FreenetURI;
import freenet.support.Fields;
-import freenet.support.HexUtil;
import freenet.support.Logger;
import freenet.support.SimpleFieldSet;
import freenet.support.api.Bucket;
@@ -240,6 +239,7 @@
try {
ret =
SerializableToFieldSetBucketUtil.create(fs.subset("ReturnBucket"), fctx.random,
client.server.core.persistentTempBucketFactory);
} catch (CannotCreateFromFieldSetException e) {
+ Logger.error(this, "Cannot read: "+this+" :
"+e, e);
ret = null;
finished = false;
succeeded = false;
@@ -501,7 +501,7 @@
}
}
// Return bucket
- if(returnType == ClientGetMessage.RETURN_TYPE_DIRECT) {
+ if(returnType == ClientGetMessage.RETURN_TYPE_DIRECT &&
!(succeeded == false && returnBucket == null)) {
bucketToFS(fs, "ReturnBucket", false, returnBucket);
}
fs.put("Global", Boolean.toString(client.isGlobalQueue));
Modified: trunk/freenet/src/freenet/node/fcp/ClientPut.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientPut.java 2006-12-19 13:57:34 UTC
(rev 11481)
+++ trunk/freenet/src/freenet/node/fcp/ClientPut.java 2006-12-19 15:00:43 UTC
(rev 11482)
@@ -16,7 +16,6 @@
import freenet.client.async.ClientGetter;
import freenet.client.async.ClientPutter;
import freenet.keys.FreenetURI;
-import freenet.support.HexUtil;
import freenet.support.Logger;
import freenet.support.SimpleFieldSet;
import freenet.support.SimpleReadOnlyArrayBucket;
@@ -39,6 +38,7 @@
private long finishedSize;
/** Filename if the file has one */
private final String targetFilename;
+ private boolean logMINOR;
/**
* Creates a new persistent insert.
@@ -85,6 +85,7 @@
boolean dontCompress, int maxRetries, short
uploadFromType, File origFilename, String contentType,
Bucket data, FreenetURI redirectTarget, String
targetFilename, boolean earlyEncode) throws IdentifierCollisionException {
super(uri, identifier, verbosity, null, globalClient,
priorityClass, persistenceType, null, true, getCHKOnly, dontCompress,
maxRetries, earlyEncode);
+ logMINOR = Logger.shouldLog(Logger.MINOR, this);
this.targetFilename = targetFilename;
this.uploadFrom = uploadFromType;
this.origFilename = origFilename;
@@ -135,7 +136,7 @@
message.priorityClass, message.persistenceType,
message.clientToken, message.global,
message.getCHKOnly, message.dontCompress,
message.maxRetries, message.earlyEncode);
this.targetFilename = message.targetFilename;
- boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);
+ logMINOR = Logger.shouldLog(Logger.MINOR, this);
this.uploadFrom = message.uploadFromType;
this.origFilename = message.origFilename;
// Now go through the fields one at a time
@@ -196,6 +197,7 @@
*/
public ClientPut(SimpleFieldSet fs, FCPClient client2) throws
PersistenceParseException, IOException {
super(fs, client2);
+ logMINOR = Logger.shouldLog(Logger.MINOR, this);
String mimeType = fs.get("Metadata.ContentType");
String from = fs.get("UploadFrom");
@@ -225,21 +227,31 @@
if(uploadFrom == ClientPutMessage.UPLOAD_FROM_DISK) {
origFilename = new File(fs.get("Filename"));
+ if(logMINOR)
+ Logger.minor(this, "Uploading from disk:
"+origFilename+" for "+this);
data = new FileBucket(origFilename, true, false, false,
false);
targetURI = null;
} else if(uploadFrom == ClientPutMessage.UPLOAD_FROM_DIRECT) {
origFilename = null;
+ if(logMINOR)
+ Logger.minor(this, "Uploading from direct for
"+this);
if(!finished) {
try {
- data =
SerializableToFieldSetBucketUtil.create(fs.subset("ReturnBucket"), ctx.random,
client.server.core.persistentTempBucketFactory);
+ data =
SerializableToFieldSetBucketUtil.create(fs.subset("TempBucket"), ctx.random,
client.server.core.persistentTempBucketFactory);
} catch (CannotCreateFromFieldSetException e) {
throw new
PersistenceParseException("Could not read old bucket for "+identifier+" : "+e,
e);
}
- } else data = null;
+ } else {
+ if(Logger.shouldLog(Logger.MINOR, this))
+ Logger.minor(this, "Finished already so
not reading bucket for "+this);
+ data = null;
+ }
targetURI = null;
} else if(uploadFrom == ClientPutMessage.UPLOAD_FROM_REDIRECT) {
String target = fs.get("TargetURI");
targetURI = new FreenetURI(target);
+ if(logMINOR)
+ Logger.minor(this, "Uploading from redirect for
"+this+" : "+targetURI);
Metadata m = new Metadata(Metadata.SIMPLE_REDIRECT,
targetURI, cm);
cm = null;
byte[] d;
@@ -261,6 +273,7 @@
} else {
throw new PersistenceParseException("shouldn't happen");
}
+ if(logMINOR) Logger.minor(this, "data = "+data);
this.clientMetadata = cm;
putter = new ClientPutter(this, data, uri, cm, ctx,
client.core.requestStarters.chkPutScheduler,
client.core.requestStarters.sskPutScheduler,
priorityClass, getCHKOnly, isMetadata, client.lowLevelClient,
fs.subset("progress"), targetFilename);