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;