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


Reply via email to