Author: toad
Date: 2008-06-17 15:12:17 +0000 (Tue, 17 Jun 2008)
New Revision: 20398

Modified:
   branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java
   branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
   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/ClientPutDir.java
   branches/db4o/freenet/src/freenet/node/fcp/FCPConnectionHandler.java
Log:
SingleFileInserter, SimpleManifestPutter, ClientPutDir: Remove bogus exceptions.
ClientPut, ClientGet: Don't throw Fetch/InsertException, make a 
MessageInvalidException.
FCPConnectionHandler: don't throw Fetch/InsertException, they're not 
appropriate here as we haven't registered yet.

Modified: 
branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java    
2008-06-17 15:01:08 UTC (rev 20397)
+++ branches/db4o/freenet/src/freenet/client/async/SimpleManifestPutter.java    
2008-06-17 15:12:17 UTC (rev 20398)
@@ -34,7 +34,7 @@

        private class PutHandler extends BaseClientPutter implements 
PutCompletionCallback {

-               protected PutHandler(final SimpleManifestPutter smp, String 
name, Bucket data, ClientMetadata cm, boolean getCHKOnly) throws 
InsertException {
+               protected PutHandler(final SimpleManifestPutter smp, String 
name, Bucket data, ClientMetadata cm, boolean getCHKOnly) {
                        super(smp.priorityClass, smp.client);
                        this.cm = cm;
                        this.data = data;
@@ -213,7 +213,7 @@

        public SimpleManifestPutter(ClientCallback cb, 
                        HashMap manifestElements, short prioClass, FreenetURI 
target, 
-                       String defaultName, InsertContext ctx, boolean 
getCHKOnly, RequestClient clientContext, boolean earlyEncode) throws 
InsertException {
+                       String defaultName, InsertContext ctx, boolean 
getCHKOnly, RequestClient clientContext, boolean earlyEncode) {
                super(prioClass, clientContext);
                logMINOR = Logger.shouldLog(Logger.MINOR, this);
                this.defaultName = defaultName;
@@ -271,11 +271,11 @@
                }
        }

-       private void makePutHandlers(HashMap manifestElements, HashMap 
putHandlersByName) throws InsertException {
+       private void makePutHandlers(HashMap manifestElements, HashMap 
putHandlersByName) {
                makePutHandlers(manifestElements, putHandlersByName, "/");
        }

-       private void makePutHandlers(HashMap manifestElements, HashMap 
putHandlersByName, String ZipPrefix) throws InsertException {
+       private void makePutHandlers(HashMap manifestElements, HashMap 
putHandlersByName, String ZipPrefix) {
                Iterator it = manifestElements.keySet().iterator();
                while(it.hasNext()) {
                        String name = (String) it.next();
@@ -313,12 +313,7 @@
                                                numberOfFiles++;
                                                totalSize += data.size();
                                        } else {
-                                               try {
                                                        ph = new 
PutHandler(this,name, data, cm, getCHKOnly);
-                                               } catch (InsertException e) {
-                                                       cancelAndFinish();
-                                                       throw e;
-                                               }
                                                runningPutHandlers.add(ph);
                                                
putHandlersWaitingForMetadata.add(ph);
                                                
putHandlersWaitingForFetchable.add(ph);

Modified: branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java      
2008-06-17 15:01:08 UTC (rev 20397)
+++ branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java      
2008-06-17 15:12:17 UTC (rev 20398)
@@ -70,7 +70,7 @@
        SingleFileInserter(BaseClientPutter parent, PutCompletionCallback cb, 
InsertBlock block, 
                        boolean metadata, InsertContext ctx, boolean 
dontCompress, 
                        boolean getCHKOnly, boolean reportMetadataOnly, Object 
token, boolean insertAsArchiveManifest, 
-                       boolean freeData, String targetFilename, boolean 
earlyEncode) throws InsertException {
+                       boolean freeData, String targetFilename, boolean 
earlyEncode) {
                this.earlyEncode = earlyEncode;
                this.reportMetadataOnly = reportMetadataOnly;
                this.token = token;
@@ -505,7 +505,6 @@
                                return;
                        }
                        InsertBlock newBlock = new InsertBlock(metadataBucket, 
null, block.desiredURI);
-                       try {
                                synchronized(this) {
                                        metadataPutter = new 
SingleFileInserter(parent, this, newBlock, true, ctx, false, getCHKOnly, false, 
token, false, true, metaPutterTargetFilename, earlyEncode);
                                        // If EarlyEncode, then start the 
metadata insert ASAP, to get the key.
@@ -513,10 +512,6 @@
                                        if(!(earlyEncode || 
splitInsertSuccess)) return;
                                }
                                if(logMINOR) Logger.minor(this, "Putting 
metadata on "+metadataPutter+" from "+sfi+" 
("+((SplitFileInserter)sfi).getLength()+ ')');
-                       } catch (InsertException e1) {
-                               cb.onFailure(e1, this, container, context);
-                               return;
-                       }
                        startMetadata(container, context);
                }


Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java   2008-06-17 
15:01:08 UTC (rev 20397)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java   2008-06-17 
15:12:17 UTC (rev 20398)
@@ -124,7 +124,7 @@
                                        returnBucket, null);
        }

-       public ClientGet(FCPConnectionHandler handler, ClientGetMessage 
message, FCPServer server) throws IdentifierCollisionException, 
MessageInvalidException, FetchException {
+       public ClientGet(FCPConnectionHandler handler, ClientGetMessage 
message, FCPServer server) throws IdentifierCollisionException, 
MessageInvalidException {
                super(message.uri, message.identifier, message.verbosity, 
handler, message.priorityClass,
                                message.persistenceType, message.clientToken, 
message.global);
                // Create a Fetcher directly in order to get more fine-grained 
control,
@@ -173,7 +173,8 @@
                                Logger.error(this, "Cannot create bucket for 
temp storage: "+e, e);
                                getter = null;
                                returnBucket = null;
-                               throw new 
FetchException(FetchException.BUCKET_ERROR, e);
+                               // This is *not* a FetchException since we 
don't register it: it's a protocol error.
+                               throw new 
MessageInvalidException(ProtocolErrorMessage.INTERNAL_ERROR, "Cannot create 
bucket for temporary storage (out of disk space???): "+e, identifier, global);
                        }
                }
                if(ret == null)

Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientPut.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientPut.java   2008-06-17 
15:01:08 UTC (rev 20397)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientPut.java   2008-06-17 
15:12:17 UTC (rev 20398)
@@ -153,7 +153,7 @@
                                null, targetFilename, binaryBlob);
        }

-       public ClientPut(FCPConnectionHandler handler, ClientPutMessage 
message, FCPServer server) throws IdentifierCollisionException, 
MessageInvalidException, MalformedURLException, InsertException {
+       public ClientPut(FCPConnectionHandler handler, ClientPutMessage 
message, FCPServer server) throws IdentifierCollisionException, 
MessageInvalidException, MalformedURLException {
                super(message.uri, message.identifier, message.verbosity, 
handler, 
                                message.priorityClass, message.persistenceType, 
message.clientToken, message.global,
                                message.getCHKOnly, message.dontCompress, 
message.maxRetries, message.earlyEncode, server);
@@ -210,7 +210,8 @@
                                this.data = null;
                                clientMetadata = cm;
                                putter = null;
-                               throw new 
InsertException(InsertException.INTERNAL_ERROR, "Impossible: "+e+" in 
ClientPut", null);
+                               // This is *not* an InsertException since we 
don't register it: it's a protocol error.
+                               throw new 
MessageInvalidException(ProtocolErrorMessage.INTERNAL_ERROR, "Impossible: 
metadata unresolved: "+e, identifier, global);
                        }
                        tempData = new SimpleReadOnlyArrayBucket(d);
                        isMetadata = true;

Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientPutDir.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientPutDir.java        
2008-06-17 15:01:08 UTC (rev 20397)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientPutDir.java        
2008-06-17 15:12:17 UTC (rev 20398)
@@ -42,7 +42,7 @@
        private final boolean wasDiskPut;

        public ClientPutDir(FCPConnectionHandler handler, ClientPutDirMessage 
message, 
-                       HashMap manifestElements, boolean wasDiskPut, FCPServer 
server) throws IdentifierCollisionException, MalformedURLException, 
InsertException {
+                       HashMap manifestElements, boolean wasDiskPut, FCPServer 
server) throws IdentifierCollisionException, MalformedURLException {
                super(message.uri, message.identifier, message.verbosity, 
handler,
                                message.priorityClass, message.persistenceType, 
message.clientToken, message.global,
                                message.getCHKOnly, message.dontCompress, 
message.maxRetries, message.earlyEncode, server);
@@ -65,7 +65,7 @@
        *       Puts a disk dir
         * @throws InsertException 
        */
-       public ClientPutDir(FCPClient client, FreenetURI uri, String 
identifier, int verbosity, short priorityClass, short persistenceType, String 
clientToken, boolean getCHKOnly, boolean dontCompress, int maxRetries, File 
dir, String defaultName, boolean allowUnreadableFiles, boolean global, boolean 
earlyEncode, FCPServer server) throws FileNotFoundException, 
IdentifierCollisionException, MalformedURLException, InsertException {
+       public ClientPutDir(FCPClient client, FreenetURI uri, String 
identifier, int verbosity, short priorityClass, short persistenceType, String 
clientToken, boolean getCHKOnly, boolean dontCompress, int maxRetries, File 
dir, String defaultName, boolean allowUnreadableFiles, boolean global, boolean 
earlyEncode, FCPServer server) throws FileNotFoundException, 
IdentifierCollisionException, MalformedURLException {
                super(uri, identifier, verbosity , null, client, priorityClass, 
persistenceType, clientToken, global, getCHKOnly, dontCompress, maxRetries, 
earlyEncode, server);

                wasDiskPut = true;
@@ -127,7 +127,7 @@
                return map;
        }

-       private void makePutter() throws InsertException {
+       private void makePutter() {
                SimpleManifestPutter p;
                        p = new SimpleManifestPutter(this, 
                                        manifestElements, priorityClass, uri, 
defaultName, ctx, getCHKOnly,
@@ -138,7 +138,7 @@



-       public ClientPutDir(SimpleFieldSet fs, FCPClient client, FCPServer 
server) throws PersistenceParseException, IOException, InsertException {
+       public ClientPutDir(SimpleFieldSet fs, FCPClient client, FCPServer 
server) throws PersistenceParseException, IOException {
                super(fs, client, server);
                logMINOR = Logger.shouldLog(Logger.MINOR, this);
                SimpleFieldSet files = fs.subset("Files");
@@ -204,16 +204,11 @@
                }
                manifestElements = SimpleManifestPutter.unflatten(v);
                SimpleManifestPutter p = null;
-               try {
                        if(!finished)
                                p = new SimpleManifestPutter(this, 
                                                manifestElements, 
priorityClass, uri, defaultName, ctx, getCHKOnly, 
                                                client.lowLevelClient,
                                                earlyEncode);
-               } catch (InsertException e) {
-                       p = null;
-                       throw e;
-               }
                putter = p;
                numberOfFiles = fileCount;
                totalSize = size;
@@ -361,12 +356,7 @@
        public boolean restart(ObjectContainer container, ClientContext 
context) {
                if(!canRestart()) return false;
                setVarsRestart();
-               try {
                        makePutter();
-               } catch (InsertException e) {
-                       onFailure(e, putter, container);
-                       return false;
-               }
                start(container, context);
                return true;
        }

Modified: branches/db4o/freenet/src/freenet/node/fcp/FCPConnectionHandler.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/FCPConnectionHandler.java        
2008-06-17 15:01:08 UTC (rev 20397)
+++ branches/db4o/freenet/src/freenet/node/fcp/FCPConnectionHandler.java        
2008-06-17 15:12:17 UTC (rev 20398)
@@ -12,6 +12,7 @@

 import com.db4o.ObjectContainer;

+import freenet.client.InsertException;
 import freenet.client.async.ClientContext;
 import freenet.client.async.DBJob;
 import freenet.support.HexUtil;


Reply via email to