[freenet-cvs] r13151 - in trunk/freenet/src/freenet: client client/async client/events clients/http frost/message keys node node/fcp node/updater

toad at freenetproject.org toad at freenetproject.org
Fri May 4 19:31:39 UTC 2007


Author: toad
Date: 2007-05-04 19:31:38 +0000 (Fri, 04 May 2007)
New Revision: 13151

Added:
   trunk/freenet/src/freenet/client/InsertContext.java
   trunk/freenet/src/freenet/client/InsertException.java
Removed:
   trunk/freenet/src/freenet/client/InserterContext.java
   trunk/freenet/src/freenet/client/InserterException.java
Modified:
   trunk/freenet/src/freenet/client/FailureCodeTracker.java
   trunk/freenet/src/freenet/client/FetchWaiter.java
   trunk/freenet/src/freenet/client/HighLevelSimpleClient.java
   trunk/freenet/src/freenet/client/HighLevelSimpleClientImpl.java
   trunk/freenet/src/freenet/client/PutWaiter.java
   trunk/freenet/src/freenet/client/async/ClientCallback.java
   trunk/freenet/src/freenet/client/async/ClientPutState.java
   trunk/freenet/src/freenet/client/async/ClientPutter.java
   trunk/freenet/src/freenet/client/async/MultiPutCompletionCallback.java
   trunk/freenet/src/freenet/client/async/PutCompletionCallback.java
   trunk/freenet/src/freenet/client/async/SimpleHealingQueue.java
   trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java
   trunk/freenet/src/freenet/client/async/SingleBlockInserter.java
   trunk/freenet/src/freenet/client/async/SingleFileInserter.java
   trunk/freenet/src/freenet/client/async/SplitFileInserter.java
   trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java
   trunk/freenet/src/freenet/client/async/USKInserter.java
   trunk/freenet/src/freenet/client/events/BlockInsertErrorEvent.java
   trunk/freenet/src/freenet/clients/http/NinjaSpider.java
   trunk/freenet/src/freenet/clients/http/Spider.java
   trunk/freenet/src/freenet/clients/http/Toadlet.java
   trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
   trunk/freenet/src/freenet/frost/message/FrostMessage.java
   trunk/freenet/src/freenet/keys/FreenetURI.java
   trunk/freenet/src/freenet/node/NodeARKInserter.java
   trunk/freenet/src/freenet/node/NodeClientCore.java
   trunk/freenet/src/freenet/node/TextModeClientInterface.java
   trunk/freenet/src/freenet/node/fcp/ClientGet.java
   trunk/freenet/src/freenet/node/fcp/ClientPut.java
   trunk/freenet/src/freenet/node/fcp/ClientPutBase.java
   trunk/freenet/src/freenet/node/fcp/ClientPutDir.java
   trunk/freenet/src/freenet/node/fcp/FCPClient.java
   trunk/freenet/src/freenet/node/fcp/FCPServer.java
   trunk/freenet/src/freenet/node/fcp/GetFailedMessage.java
   trunk/freenet/src/freenet/node/fcp/PutFailedMessage.java
   trunk/freenet/src/freenet/node/updater/NodeUpdater.java
   trunk/freenet/src/freenet/node/updater/RevocationChecker.java
Log:
Rename Inserter->Insert to be consistent with Fetch

Modified: trunk/freenet/src/freenet/client/FailureCodeTracker.java
===================================================================
--- trunk/freenet/src/freenet/client/FailureCodeTracker.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/FailureCodeTracker.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -81,7 +81,7 @@
 		while(i.hasNext()) {
 			Integer x = (Integer) i.next();
 			Item val = (Item) map.get(x);
-			String s = insert ? InserterException.getMessage(x.intValue()) : FetchException.getMessage(x.intValue());
+			String s = insert ? InsertException.getMessage(x.intValue()) : FetchException.getMessage(x.intValue());
 			sb.append(val.x);
 			sb.append('\t');
 			sb.append(s);
@@ -144,7 +144,7 @@
 			// prefix.num.Count=<count>
 			if(verbose)
 				sfs.putSingle(Integer.toString(code)+".Description", 
-						insert ? InserterException.getMessage(code) : FetchException.getMessage(code));
+						insert ? InsertException.getMessage(code) : FetchException.getMessage(code));
 			sfs.put(Integer.toString(code)+".Count", item.x);
 		}
 		return sfs;
@@ -164,7 +164,7 @@
 			Integer code = (Integer) i.next();
 			if(((Item)map.get(code)).x == 0) continue;
 			if(insert) {
-				if(InserterException.isFatal(code.intValue())) return true;
+				if(InsertException.isFatal(code.intValue())) return true;
 			} else {
 				if(FetchException.isFatal(code.intValue())) return true;
 			}
@@ -172,7 +172,7 @@
 		return false;
 	}
 
-	public void merge(InserterException e) {
+	public void merge(InsertException e) {
 		if(!insert) throw new IllegalArgumentException("This is not an insert yet merge("+e+") called!");
 		if(e.errorCodes != null)
 			merge(e.errorCodes);

Modified: trunk/freenet/src/freenet/client/FetchWaiter.java
===================================================================
--- trunk/freenet/src/freenet/client/FetchWaiter.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/FetchWaiter.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -32,7 +32,7 @@
 		throw new UnsupportedOperationException();
 	}
 
-	public void onFailure(InserterException e, BaseClientPutter state) {
+	public void onFailure(InsertException e, BaseClientPutter state) {
 		throw new UnsupportedOperationException();
 	}
 

Modified: trunk/freenet/src/freenet/client/HighLevelSimpleClient.java
===================================================================
--- trunk/freenet/src/freenet/client/HighLevelSimpleClient.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/HighLevelSimpleClient.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -39,28 +39,28 @@
 	/**
 	 * Blocking insert.
 	 * @param filenameHint If set, insert a single-file manifest containing only this file, under the given filename.
-	 * @throws InserterException If there is an error inserting the data
+	 * @throws InsertException If there is an error inserting the data
 	 */
-	public FreenetURI insert(InsertBlock insert, boolean getCHKOnly, String filenameHint) throws InserterException;
+	public FreenetURI insert(InsertBlock insert, boolean getCHKOnly, String filenameHint) throws InsertException;
 
 	/**
 	 * Blocking insert of a redirect.
 	 */
-	public FreenetURI insertRedirect(FreenetURI insertURI, FreenetURI target) throws InserterException;
+	public FreenetURI insertRedirect(FreenetURI insertURI, FreenetURI target) throws InsertException;
 	
 	/**
 	 * Blocking insert of multiple files as a manifest (or zip manifest, etc).
 	 */
-	public FreenetURI insertManifest(FreenetURI insertURI, HashMap bucketsByName, String defaultName) throws InserterException;
+	public FreenetURI insertManifest(FreenetURI insertURI, HashMap bucketsByName, String defaultName) throws InsertException;
 	
 	public FetchContext getFetcherContext();
 
 	/**
-	 * Get an InserterContext.
+	 * Get an InsertContext.
 	 * @param forceNonPersistent If true, force the request to use the non-persistent
 	 * bucket pool.
 	 */
-	public InserterContext getInserterContext(boolean forceNonPersistent);
+	public InsertContext getInserterContext(boolean forceNonPersistent);
 	
 	/**
 	 * Add a ClientEventListener.

Modified: trunk/freenet/src/freenet/client/HighLevelSimpleClientImpl.java
===================================================================
--- trunk/freenet/src/freenet/client/HighLevelSimpleClientImpl.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/HighLevelSimpleClientImpl.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -129,12 +129,12 @@
 		return fw.waitForCompletion();
 	}
 	
-	public FreenetURI insert(InsertBlock insert, boolean getCHKOnly, String filenameHint) throws InserterException {
+	public FreenetURI insert(InsertBlock insert, boolean getCHKOnly, String filenameHint) throws InsertException {
 		return insert(insert, getCHKOnly, filenameHint, false);
 	}
 	
-	public FreenetURI insert(InsertBlock insert, boolean getCHKOnly, String filenameHint, boolean isMetadata) throws InserterException {
-		InserterContext context = getInserterContext(true);
+	public FreenetURI insert(InsertBlock insert, boolean getCHKOnly, String filenameHint, boolean isMetadata) throws InsertException {
+		InsertContext context = getInserterContext(true);
 		PutWaiter pw = new PutWaiter();
 		ClientPutter put = new ClientPutter(pw, insert.getData(), insert.desiredURI, insert.clientMetadata, 
 				context, core.requestStarters.chkPutScheduler, core.requestStarters.sskPutScheduler, priorityClass, getCHKOnly, isMetadata, this, null, filenameHint);
@@ -142,24 +142,24 @@
 		return pw.waitForCompletion();
 	}
 
-	public FreenetURI insertRedirect(FreenetURI insertURI, FreenetURI targetURI) throws InserterException {
+	public FreenetURI insertRedirect(FreenetURI insertURI, FreenetURI targetURI) throws InsertException {
 		Metadata m = new Metadata(Metadata.SIMPLE_REDIRECT, targetURI, new ClientMetadata());
 		Bucket b;
 		try {
 			b = BucketTools.makeImmutableBucket(bucketFactory, m.writeToByteArray());
 		} catch (IOException e) {
 			Logger.error(this, "Bucket error: "+e, e);
-			throw new InserterException(InserterException.INTERNAL_ERROR, e, null);
+			throw new InsertException(InsertException.INTERNAL_ERROR, e, null);
 		} catch (MetadataUnresolvedException e) {
 			Logger.error(this, "Impossible error: "+e, e);
-			throw new InserterException(InserterException.INTERNAL_ERROR, e, null);
+			throw new InsertException(InsertException.INTERNAL_ERROR, e, null);
 		}
 		
 		InsertBlock block = new InsertBlock(b, null, insertURI);
 		return insert(block, false, null, true);
 	}
 
-	public FreenetURI insertManifest(FreenetURI insertURI, HashMap bucketsByName, String defaultName) throws InserterException {
+	public FreenetURI insertManifest(FreenetURI insertURI, HashMap bucketsByName, String defaultName) throws InsertException {
 		PutWaiter pw = new PutWaiter();
 		SimpleManifestPutter putter =
 			new SimpleManifestPutter(pw, core.requestStarters.chkPutScheduler, core.requestStarters.sskPutScheduler, SimpleManifestPutter.bucketsByNameToManifestEntries(bucketsByName), priorityClass, insertURI, defaultName, getInserterContext(true), false, this, false);
@@ -193,8 +193,8 @@
 				forceDontIgnoreTooManyPathComponents ? false : core.ignoreTooManyPathComponents);
 	}
 
-	public InserterContext getInserterContext(boolean forceNonPersistent) {
-		return new InserterContext(bucketFactory, forceNonPersistent ? bucketFactory : persistentBucketFactory,
+	public InsertContext getInserterContext(boolean forceNonPersistent) {
+		return new InsertContext(bucketFactory, forceNonPersistent ? bucketFactory : persistentBucketFactory,
 				forceNonPersistent ? new NullPersistentFileTracker() : persistentFileTracker,
 				random, INSERT_RETRIES, CONSECUTIVE_RNFS_ASSUME_SUCCESS,
 				SPLITFILE_INSERT_THREADS, SPLITFILE_BLOCKS_PER_SEGMENT, SPLITFILE_CHECK_BLOCKS_PER_SEGMENT, 

Copied: trunk/freenet/src/freenet/client/InsertContext.java (from rev 13147, trunk/freenet/src/freenet/client/InserterContext.java)
===================================================================
--- trunk/freenet/src/freenet/client/InsertContext.java	                        (rev 0)
+++ trunk/freenet/src/freenet/client/InsertContext.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -0,0 +1,92 @@
+/* This code is part of Freenet. It is distributed under the GNU General
+ * Public License, version 2 (or at your option any later version). See
+ * http://www.gnu.org/ for further details of the GPL. */
+package freenet.client;
+
+import freenet.client.async.BackgroundBlockEncoder;
+import freenet.client.async.USKManager;
+import freenet.client.events.ClientEventProducer;
+import freenet.client.events.SimpleEventProducer;
+import freenet.crypt.RandomSource;
+import freenet.support.api.BucketFactory;
+import freenet.support.io.NullPersistentFileTracker;
+import freenet.support.io.PersistentFileTracker;
+
+/** Context object for an insert operation, including both simple and multi-file inserts */
+public class InsertContext {
+
+	public final BucketFactory bf;
+	public final BucketFactory persistentBucketFactory;
+	public final PersistentFileTracker persistentFileTracker;
+	/** If true, don't try to compress the data */
+	public boolean dontCompress;
+	public final RandomSource random;
+	public final short splitfileAlgorithm;
+	public int maxInsertRetries;
+	final int maxSplitInsertThreads;
+	public final int consecutiveRNFsCountAsSuccess;
+	public final int splitfileSegmentDataBlocks;
+	public final int splitfileSegmentCheckBlocks;
+	public final ClientEventProducer eventProducer;
+	/** Interesting tradeoff, see comments at top of Node.java. */
+	public final boolean cacheLocalRequests;
+	public final USKManager uskManager;
+	public final BackgroundBlockEncoder backgroundBlockEncoder;
+	
+	public InsertContext(BucketFactory bf, BucketFactory persistentBF, PersistentFileTracker tracker, RandomSource random,
+			int maxRetries, int rnfsToSuccess, int maxThreads, int splitfileSegmentDataBlocks, int splitfileSegmentCheckBlocks,
+			ClientEventProducer eventProducer, boolean cacheLocalRequests, USKManager uskManager, BackgroundBlockEncoder blockEncoder) {
+		this.bf = bf;
+		this.persistentFileTracker = tracker;
+		this.persistentBucketFactory = persistentBF;
+		this.uskManager = uskManager;
+		this.random = random;
+		dontCompress = false;
+		splitfileAlgorithm = Metadata.SPLITFILE_ONION_STANDARD;
+		this.consecutiveRNFsCountAsSuccess = rnfsToSuccess;
+		this.maxInsertRetries = maxRetries;
+		this.maxSplitInsertThreads = maxThreads;
+		this.eventProducer = eventProducer;
+		this.splitfileSegmentDataBlocks = splitfileSegmentDataBlocks;
+		this.splitfileSegmentCheckBlocks = splitfileSegmentCheckBlocks;
+		this.cacheLocalRequests = cacheLocalRequests;
+		this.backgroundBlockEncoder = blockEncoder;
+	}
+
+	public InsertContext(InsertContext ctx, SimpleEventProducer producer, boolean forceNonPersistent) {
+		this.persistentFileTracker = forceNonPersistent ? new NullPersistentFileTracker() : ctx.persistentFileTracker;
+		this.uskManager = ctx.uskManager;
+		this.bf = ctx.bf;
+		this.persistentBucketFactory = forceNonPersistent ? ctx.bf : ctx.persistentBucketFactory;
+		this.random = ctx.random;
+		this.dontCompress = ctx.dontCompress;
+		this.splitfileAlgorithm = ctx.splitfileAlgorithm;
+		this.consecutiveRNFsCountAsSuccess = ctx.consecutiveRNFsCountAsSuccess;
+		this.maxInsertRetries = ctx.maxInsertRetries;
+		this.maxSplitInsertThreads = ctx.maxSplitInsertThreads;
+		this.eventProducer = producer;
+		this.splitfileSegmentDataBlocks = ctx.splitfileSegmentDataBlocks;
+		this.splitfileSegmentCheckBlocks = ctx.splitfileSegmentCheckBlocks;
+		this.cacheLocalRequests = ctx.cacheLocalRequests;
+		this.backgroundBlockEncoder = ctx.backgroundBlockEncoder;
+	}
+
+	public InsertContext(InsertContext ctx, SimpleEventProducer producer) {
+		this.persistentFileTracker = ctx.persistentFileTracker;
+		this.uskManager = ctx.uskManager;
+		this.bf = ctx.bf;
+		this.persistentBucketFactory = ctx.persistentBucketFactory;
+		this.random = ctx.random;
+		this.dontCompress = ctx.dontCompress;
+		this.splitfileAlgorithm = ctx.splitfileAlgorithm;
+		this.consecutiveRNFsCountAsSuccess = ctx.consecutiveRNFsCountAsSuccess;
+		this.maxInsertRetries = ctx.maxInsertRetries;
+		this.maxSplitInsertThreads = ctx.maxSplitInsertThreads;
+		this.eventProducer = producer;
+		this.splitfileSegmentDataBlocks = ctx.splitfileSegmentDataBlocks;
+		this.splitfileSegmentCheckBlocks = ctx.splitfileSegmentCheckBlocks;
+		this.cacheLocalRequests = ctx.cacheLocalRequests;
+		this.backgroundBlockEncoder = ctx.backgroundBlockEncoder;
+	}
+
+}

Copied: trunk/freenet/src/freenet/client/InsertException.java (from rev 13147, trunk/freenet/src/freenet/client/InserterException.java)
===================================================================
--- trunk/freenet/src/freenet/client/InsertException.java	                        (rev 0)
+++ trunk/freenet/src/freenet/client/InsertException.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -0,0 +1,196 @@
+/* This code is part of Freenet. It is distributed under the GNU General
+ * Public License, version 2 (or at your option any later version). See
+ * http://www.gnu.org/ for further details of the GPL. */
+package freenet.client;
+
+import freenet.keys.FreenetURI;
+import freenet.support.Logger;
+
+public class InsertException extends Exception {
+	private static final long serialVersionUID = -1106716067841151962L;
+	
+	private final int mode;
+	/** For collection errors */
+	public FailureCodeTracker errorCodes;
+	/** If a non-serious error, the URI */
+	public FreenetURI uri;
+	
+	public final String extra;
+	
+	/** Get the failure mode. */
+	public int getMode() {
+		return mode;
+	}
+	
+	public InsertException(int m, String msg, FreenetURI expectedURI) {
+		super(getMessage(m)+": "+msg);
+		extra = msg;
+		mode = m;
+		if(Logger.shouldLog(Logger.MINOR, getClass()))
+			Logger.minor(this, "Creating InsertException: "+getMessage(mode)+": "+msg, this);
+		errorCodes = null;
+		this.uri = expectedURI;
+	}
+	
+	public InsertException(int m, FreenetURI expectedURI) {
+		super(getMessage(m));
+		extra = null;
+		mode = m;
+		if(Logger.shouldLog(Logger.MINOR, getClass()))
+			Logger.minor(this, "Creating InsertException: "+getMessage(mode), this);
+		errorCodes = null;
+		this.uri = expectedURI;
+	}
+
+	public InsertException(int mode, Throwable e, FreenetURI expectedURI) {
+		super(getMessage(mode)+": "+e.getMessage());
+		extra = e.getMessage();
+		if(Logger.shouldLog(Logger.MINOR, getClass()))
+			Logger.minor(this, "Creating InsertException: "+getMessage(mode)+": "+e, e);
+		this.mode = mode;
+		errorCodes = null;
+		initCause(e);
+		this.uri = expectedURI;
+	}
+
+	public InsertException(int mode, FailureCodeTracker errorCodes, FreenetURI expectedURI) {
+		super(getMessage(mode));
+		extra = null;
+		this.mode = mode;
+		if(Logger.shouldLog(Logger.MINOR, getClass()))
+			Logger.minor(this, "Creating InsertException: "+getMessage(mode), this);
+		this.errorCodes = errorCodes;
+		this.uri = expectedURI;
+	}
+
+	public InsertException(int mode) {
+		super(getMessage(mode));
+		extra = null;
+		this.mode = mode;
+		this.errorCodes = null;
+		this.uri = null;
+	}
+
+	/** Caller supplied a URI we cannot use */
+	public static final int INVALID_URI = 1;
+	/** Failed to read from or write to a bucket; a kind of internal error */
+	public static final int BUCKET_ERROR = 2;
+	/** Internal error of some sort */
+	public static final int INTERNAL_ERROR = 3;
+	/** Downstream node was overloaded */
+	public static final int REJECTED_OVERLOAD = 4;
+	/** Couldn't find enough nodes to send the data to */
+	public static final int ROUTE_NOT_FOUND = 5;
+	/** There were fatal errors in a splitfile insert. */
+	public static final int FATAL_ERRORS_IN_BLOCKS = 6;
+	/** Could not insert a splitfile because a block failed too many times */
+	public static final int TOO_MANY_RETRIES_IN_BLOCKS = 7;
+	/** Not able to leave the node at all */
+	public static final int ROUTE_REALLY_NOT_FOUND = 8;
+	/** Collided with pre-existing content */
+	public static final int COLLISION = 9;
+	/** Cancelled by user */
+	public static final int CANCELLED = 10;
+	/** Meta string used in the key (most probably '/') */
+	public static final int META_STRINGS_NOT_SUPPORTED = 11;
+	
+	public static String getMessage(int mode) {
+		switch(mode) {
+		case INVALID_URI:
+			return "Caller supplied a URI we cannot use";
+		case BUCKET_ERROR:
+			return "Internal bucket error: out of disk space/permissions problem?";
+		case INTERNAL_ERROR:
+			return "Internal error";
+		case REJECTED_OVERLOAD:
+			return "A downstream node timed out or was severely overloaded";
+		case FATAL_ERRORS_IN_BLOCKS:
+			return "Fatal errors in a splitfile insert";
+		case TOO_MANY_RETRIES_IN_BLOCKS:
+			return "Could not insert splitfile: ran out of retries (nonfatal errors)";
+		case ROUTE_NOT_FOUND:
+			return "Could not propagate the insert to enough nodes (normal on small networks, try fetching it anyway)";
+		case ROUTE_REALLY_NOT_FOUND:
+			return "Insert could not leave the node at all";
+		case COLLISION:
+			return "Insert collided with different, pre-existing data at the same key";
+		case META_STRINGS_NOT_SUPPORTED:
+			return "Meta string (most likely a '/') used in the URI";
+		case CANCELLED:
+			return "Cancelled by user";
+		default:
+			return "Unknown error "+mode;
+		}
+	}
+
+	public static String getShortMessage(int mode) {
+		switch(mode) {
+		case INVALID_URI:
+			return "Invalid URI";
+		case BUCKET_ERROR:
+			return "Temp files error";
+		case INTERNAL_ERROR:
+			return "Internal error";
+		case REJECTED_OVERLOAD:
+			return "Timeout or overload";
+		case FATAL_ERRORS_IN_BLOCKS:
+			return "Some blocks failed fatally";
+		case TOO_MANY_RETRIES_IN_BLOCKS:
+			return "Some blocks ran out of retries";
+		case ROUTE_NOT_FOUND:
+			return "Route not found";
+		case ROUTE_REALLY_NOT_FOUND:
+			return "Request could not leave the node";
+		case COLLISION:
+			return "Collided with existing data";
+		case META_STRINGS_NOT_SUPPORTED:
+			return "Meta string used in the key";
+		case CANCELLED:
+			return "Cancelled";
+		default:
+			return "Unknown error "+mode;
+		}
+	}
+	
+	/** Is this error fatal? Non-fatal errors are errors which are likely to go away with
+	 * more retries, or at least for which there is some point retrying.
+	 */
+	public boolean isFatal() {
+		return isFatal(mode);
+	}
+	
+	public static boolean isFatal(int mode) {
+		switch(mode) {
+		case INVALID_URI:
+		case FATAL_ERRORS_IN_BLOCKS:
+		case COLLISION:
+		case CANCELLED:
+		case META_STRINGS_NOT_SUPPORTED:
+			return true;
+		case BUCKET_ERROR: // maybe
+		case INTERNAL_ERROR: // maybe
+		case REJECTED_OVERLOAD:
+		case TOO_MANY_RETRIES_IN_BLOCKS:
+		case ROUTE_NOT_FOUND:
+		case ROUTE_REALLY_NOT_FOUND:
+			return false;
+		default:
+			Logger.error(InsertException.class, "Error unknown to isFatal(): "+getMessage(mode));
+			return false;
+		}
+	}
+
+	public static InsertException construct(FailureCodeTracker errors) {
+		if(errors == null) return null;
+		if(errors.isEmpty()) return null;
+		if(errors.isOneCodeOnly()) {
+			return new InsertException(errors.getFirstCode());
+		}
+		int mode;
+		if(errors.isFatal(true))
+			mode = FATAL_ERRORS_IN_BLOCKS;
+		else
+			mode = TOO_MANY_RETRIES_IN_BLOCKS;
+		return new InsertException(mode, errors, null);
+	}
+}

Deleted: trunk/freenet/src/freenet/client/InserterContext.java
===================================================================
--- trunk/freenet/src/freenet/client/InserterContext.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/InserterContext.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -1,92 +0,0 @@
-/* This code is part of Freenet. It is distributed under the GNU General
- * Public License, version 2 (or at your option any later version). See
- * http://www.gnu.org/ for further details of the GPL. */
-package freenet.client;
-
-import freenet.client.async.BackgroundBlockEncoder;
-import freenet.client.async.USKManager;
-import freenet.client.events.ClientEventProducer;
-import freenet.client.events.SimpleEventProducer;
-import freenet.crypt.RandomSource;
-import freenet.support.api.BucketFactory;
-import freenet.support.io.NullPersistentFileTracker;
-import freenet.support.io.PersistentFileTracker;
-
-/** Context object for an insert operation, including both simple and multi-file inserts */
-public class InserterContext {
-
-	public final BucketFactory bf;
-	public final BucketFactory persistentBucketFactory;
-	public final PersistentFileTracker persistentFileTracker;
-	/** If true, don't try to compress the data */
-	public boolean dontCompress;
-	public final RandomSource random;
-	public final short splitfileAlgorithm;
-	public int maxInsertRetries;
-	final int maxSplitInsertThreads;
-	public final int consecutiveRNFsCountAsSuccess;
-	public final int splitfileSegmentDataBlocks;
-	public final int splitfileSegmentCheckBlocks;
-	public final ClientEventProducer eventProducer;
-	/** Interesting tradeoff, see comments at top of Node.java. */
-	public final boolean cacheLocalRequests;
-	public final USKManager uskManager;
-	public final BackgroundBlockEncoder backgroundBlockEncoder;
-	
-	public InserterContext(BucketFactory bf, BucketFactory persistentBF, PersistentFileTracker tracker, RandomSource random,
-			int maxRetries, int rnfsToSuccess, int maxThreads, int splitfileSegmentDataBlocks, int splitfileSegmentCheckBlocks,
-			ClientEventProducer eventProducer, boolean cacheLocalRequests, USKManager uskManager, BackgroundBlockEncoder blockEncoder) {
-		this.bf = bf;
-		this.persistentFileTracker = tracker;
-		this.persistentBucketFactory = persistentBF;
-		this.uskManager = uskManager;
-		this.random = random;
-		dontCompress = false;
-		splitfileAlgorithm = Metadata.SPLITFILE_ONION_STANDARD;
-		this.consecutiveRNFsCountAsSuccess = rnfsToSuccess;
-		this.maxInsertRetries = maxRetries;
-		this.maxSplitInsertThreads = maxThreads;
-		this.eventProducer = eventProducer;
-		this.splitfileSegmentDataBlocks = splitfileSegmentDataBlocks;
-		this.splitfileSegmentCheckBlocks = splitfileSegmentCheckBlocks;
-		this.cacheLocalRequests = cacheLocalRequests;
-		this.backgroundBlockEncoder = blockEncoder;
-	}
-
-	public InserterContext(InserterContext ctx, SimpleEventProducer producer, boolean forceNonPersistent) {
-		this.persistentFileTracker = forceNonPersistent ? new NullPersistentFileTracker() : ctx.persistentFileTracker;
-		this.uskManager = ctx.uskManager;
-		this.bf = ctx.bf;
-		this.persistentBucketFactory = forceNonPersistent ? ctx.bf : ctx.persistentBucketFactory;
-		this.random = ctx.random;
-		this.dontCompress = ctx.dontCompress;
-		this.splitfileAlgorithm = ctx.splitfileAlgorithm;
-		this.consecutiveRNFsCountAsSuccess = ctx.consecutiveRNFsCountAsSuccess;
-		this.maxInsertRetries = ctx.maxInsertRetries;
-		this.maxSplitInsertThreads = ctx.maxSplitInsertThreads;
-		this.eventProducer = producer;
-		this.splitfileSegmentDataBlocks = ctx.splitfileSegmentDataBlocks;
-		this.splitfileSegmentCheckBlocks = ctx.splitfileSegmentCheckBlocks;
-		this.cacheLocalRequests = ctx.cacheLocalRequests;
-		this.backgroundBlockEncoder = ctx.backgroundBlockEncoder;
-	}
-
-	public InserterContext(InserterContext ctx, SimpleEventProducer producer) {
-		this.persistentFileTracker = ctx.persistentFileTracker;
-		this.uskManager = ctx.uskManager;
-		this.bf = ctx.bf;
-		this.persistentBucketFactory = ctx.persistentBucketFactory;
-		this.random = ctx.random;
-		this.dontCompress = ctx.dontCompress;
-		this.splitfileAlgorithm = ctx.splitfileAlgorithm;
-		this.consecutiveRNFsCountAsSuccess = ctx.consecutiveRNFsCountAsSuccess;
-		this.maxInsertRetries = ctx.maxInsertRetries;
-		this.maxSplitInsertThreads = ctx.maxSplitInsertThreads;
-		this.eventProducer = producer;
-		this.splitfileSegmentDataBlocks = ctx.splitfileSegmentDataBlocks;
-		this.splitfileSegmentCheckBlocks = ctx.splitfileSegmentCheckBlocks;
-		this.cacheLocalRequests = ctx.cacheLocalRequests;
-		this.backgroundBlockEncoder = ctx.backgroundBlockEncoder;
-	}
-
-}

Deleted: trunk/freenet/src/freenet/client/InserterException.java
===================================================================
--- trunk/freenet/src/freenet/client/InserterException.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/InserterException.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -1,196 +0,0 @@
-/* This code is part of Freenet. It is distributed under the GNU General
- * Public License, version 2 (or at your option any later version). See
- * http://www.gnu.org/ for further details of the GPL. */
-package freenet.client;
-
-import freenet.keys.FreenetURI;
-import freenet.support.Logger;
-
-public class InserterException extends Exception {
-	private static final long serialVersionUID = -1106716067841151962L;
-	
-	private final int mode;
-	/** For collection errors */
-	public FailureCodeTracker errorCodes;
-	/** If a non-serious error, the URI */
-	public FreenetURI uri;
-	
-	public final String extra;
-	
-	/** Get the failure mode. */
-	public int getMode() {
-		return mode;
-	}
-	
-	public InserterException(int m, String msg, FreenetURI expectedURI) {
-		super(getMessage(m)+": "+msg);
-		extra = msg;
-		mode = m;
-		if(Logger.shouldLog(Logger.MINOR, getClass()))
-			Logger.minor(this, "Creating InserterException: "+getMessage(mode)+": "+msg, this);
-		errorCodes = null;
-		this.uri = expectedURI;
-	}
-	
-	public InserterException(int m, FreenetURI expectedURI) {
-		super(getMessage(m));
-		extra = null;
-		mode = m;
-		if(Logger.shouldLog(Logger.MINOR, getClass()))
-			Logger.minor(this, "Creating InserterException: "+getMessage(mode), this);
-		errorCodes = null;
-		this.uri = expectedURI;
-	}
-
-	public InserterException(int mode, Throwable e, FreenetURI expectedURI) {
-		super(getMessage(mode)+": "+e.getMessage());
-		extra = e.getMessage();
-		if(Logger.shouldLog(Logger.MINOR, getClass()))
-			Logger.minor(this, "Creating InserterException: "+getMessage(mode)+": "+e, e);
-		this.mode = mode;
-		errorCodes = null;
-		initCause(e);
-		this.uri = expectedURI;
-	}
-
-	public InserterException(int mode, FailureCodeTracker errorCodes, FreenetURI expectedURI) {
-		super(getMessage(mode));
-		extra = null;
-		this.mode = mode;
-		if(Logger.shouldLog(Logger.MINOR, getClass()))
-			Logger.minor(this, "Creating InserterException: "+getMessage(mode), this);
-		this.errorCodes = errorCodes;
-		this.uri = expectedURI;
-	}
-
-	public InserterException(int mode) {
-		super(getMessage(mode));
-		extra = null;
-		this.mode = mode;
-		this.errorCodes = null;
-		this.uri = null;
-	}
-
-	/** Caller supplied a URI we cannot use */
-	public static final int INVALID_URI = 1;
-	/** Failed to read from or write to a bucket; a kind of internal error */
-	public static final int BUCKET_ERROR = 2;
-	/** Internal error of some sort */
-	public static final int INTERNAL_ERROR = 3;
-	/** Downstream node was overloaded */
-	public static final int REJECTED_OVERLOAD = 4;
-	/** Couldn't find enough nodes to send the data to */
-	public static final int ROUTE_NOT_FOUND = 5;
-	/** There were fatal errors in a splitfile insert. */
-	public static final int FATAL_ERRORS_IN_BLOCKS = 6;
-	/** Could not insert a splitfile because a block failed too many times */
-	public static final int TOO_MANY_RETRIES_IN_BLOCKS = 7;
-	/** Not able to leave the node at all */
-	public static final int ROUTE_REALLY_NOT_FOUND = 8;
-	/** Collided with pre-existing content */
-	public static final int COLLISION = 9;
-	/** Cancelled by user */
-	public static final int CANCELLED = 10;
-	/** Meta string used in the key (most probably '/') */
-	public static final int META_STRINGS_NOT_SUPPORTED = 11;
-	
-	public static String getMessage(int mode) {
-		switch(mode) {
-		case INVALID_URI:
-			return "Caller supplied a URI we cannot use";
-		case BUCKET_ERROR:
-			return "Internal bucket error: out of disk space/permissions problem?";
-		case INTERNAL_ERROR:
-			return "Internal error";
-		case REJECTED_OVERLOAD:
-			return "A downstream node timed out or was severely overloaded";
-		case FATAL_ERRORS_IN_BLOCKS:
-			return "Fatal errors in a splitfile insert";
-		case TOO_MANY_RETRIES_IN_BLOCKS:
-			return "Could not insert splitfile: ran out of retries (nonfatal errors)";
-		case ROUTE_NOT_FOUND:
-			return "Could not propagate the insert to enough nodes (normal on small networks, try fetching it anyway)";
-		case ROUTE_REALLY_NOT_FOUND:
-			return "Insert could not leave the node at all";
-		case COLLISION:
-			return "Insert collided with different, pre-existing data at the same key";
-		case META_STRINGS_NOT_SUPPORTED:
-			return "Meta string (most likely a '/') used in the URI";
-		case CANCELLED:
-			return "Cancelled by user";
-		default:
-			return "Unknown error "+mode;
-		}
-	}
-
-	public static String getShortMessage(int mode) {
-		switch(mode) {
-		case INVALID_URI:
-			return "Invalid URI";
-		case BUCKET_ERROR:
-			return "Temp files error";
-		case INTERNAL_ERROR:
-			return "Internal error";
-		case REJECTED_OVERLOAD:
-			return "Timeout or overload";
-		case FATAL_ERRORS_IN_BLOCKS:
-			return "Some blocks failed fatally";
-		case TOO_MANY_RETRIES_IN_BLOCKS:
-			return "Some blocks ran out of retries";
-		case ROUTE_NOT_FOUND:
-			return "Route not found";
-		case ROUTE_REALLY_NOT_FOUND:
-			return "Request could not leave the node";
-		case COLLISION:
-			return "Collided with existing data";
-		case META_STRINGS_NOT_SUPPORTED:
-			return "Meta string used in the key";
-		case CANCELLED:
-			return "Cancelled";
-		default:
-			return "Unknown error "+mode;
-		}
-	}
-	
-	/** Is this error fatal? Non-fatal errors are errors which are likely to go away with
-	 * more retries, or at least for which there is some point retrying.
-	 */
-	public boolean isFatal() {
-		return isFatal(mode);
-	}
-	
-	public static boolean isFatal(int mode) {
-		switch(mode) {
-		case INVALID_URI:
-		case FATAL_ERRORS_IN_BLOCKS:
-		case COLLISION:
-		case CANCELLED:
-		case META_STRINGS_NOT_SUPPORTED:
-			return true;
-		case BUCKET_ERROR: // maybe
-		case INTERNAL_ERROR: // maybe
-		case REJECTED_OVERLOAD:
-		case TOO_MANY_RETRIES_IN_BLOCKS:
-		case ROUTE_NOT_FOUND:
-		case ROUTE_REALLY_NOT_FOUND:
-			return false;
-		default:
-			Logger.error(InserterException.class, "Error unknown to isFatal(): "+getMessage(mode));
-			return false;
-		}
-	}
-
-	public static InserterException construct(FailureCodeTracker errors) {
-		if(errors == null) return null;
-		if(errors.isEmpty()) return null;
-		if(errors.isOneCodeOnly()) {
-			return new InserterException(errors.getFirstCode());
-		}
-		int mode;
-		if(errors.isFatal(true))
-			mode = FATAL_ERRORS_IN_BLOCKS;
-		else
-			mode = TOO_MANY_RETRIES_IN_BLOCKS;
-		return new InserterException(mode, errors, null);
-	}
-}

Modified: trunk/freenet/src/freenet/client/PutWaiter.java
===================================================================
--- trunk/freenet/src/freenet/client/PutWaiter.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/PutWaiter.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -11,7 +11,7 @@
 	private boolean finished;
 	private boolean succeeded;
 	private FreenetURI uri;
-	private InserterException error;
+	private InsertException error;
 	
 	public void onSuccess(FetchResult result, ClientGetter state) {
 		// Ignore
@@ -27,7 +27,7 @@
 		notifyAll();
 	}
 
-	public synchronized void onFailure(InserterException e, BaseClientPutter state) {
+	public synchronized void onFailure(InsertException e, BaseClientPutter state) {
 		error = e;
 		finished = true;
 		notifyAll();
@@ -42,7 +42,7 @@
 		Logger.error(this, "URI already set: "+this.uri+" but new URI: "+uri, new Exception("error"));
 	}
 
-	public synchronized FreenetURI waitForCompletion() throws InserterException {
+	public synchronized FreenetURI waitForCompletion() throws InsertException {
 		while(!finished) {
 			try {
 				wait();
@@ -56,7 +56,7 @@
 		}
 		if(succeeded) return uri;
 		Logger.error(this, "Did not succeed but no error");
-		throw new InserterException(InserterException.INTERNAL_ERROR, "Did not succeed but no error", uri);
+		throw new InsertException(InsertException.INTERNAL_ERROR, "Did not succeed but no error", uri);
 	}
 
 	public void onMajorProgress() {

Modified: trunk/freenet/src/freenet/client/async/ClientCallback.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientCallback.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/async/ClientCallback.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -5,7 +5,7 @@
 
 import freenet.client.FetchException;
 import freenet.client.FetchResult;
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 import freenet.keys.FreenetURI;
 
 /**
@@ -21,7 +21,7 @@
 
 	public void onSuccess(BaseClientPutter state);
 	
-	public void onFailure(InserterException e, BaseClientPutter state);
+	public void onFailure(InsertException e, BaseClientPutter state);
 	
 	public void onGeneratedURI(FreenetURI uri, BaseClientPutter state);
 	

Modified: trunk/freenet/src/freenet/client/async/ClientPutState.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientPutState.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/async/ClientPutState.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -3,7 +3,7 @@
  * http://www.gnu.org/ for further details of the GPL. */
 package freenet.client.async;
 
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 import freenet.support.SimpleFieldSet;
 
 /**
@@ -20,7 +20,7 @@
 	public abstract void cancel();
 
 	/** Schedule the request. */
-	public abstract void schedule() throws InserterException;
+	public abstract void schedule() throws InsertException;
 	
 	/**
 	 * Get the token, an object which is passed around with the insert and may be

Modified: trunk/freenet/src/freenet/client/async/ClientPutter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientPutter.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/async/ClientPutter.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -5,8 +5,8 @@
 
 import freenet.client.ClientMetadata;
 import freenet.client.InsertBlock;
-import freenet.client.InserterContext;
-import freenet.client.InserterException;
+import freenet.client.InsertContext;
+import freenet.client.InsertException;
 import freenet.client.Metadata;
 import freenet.client.events.SplitfileProgressEvent;
 import freenet.keys.BaseClientKey;
@@ -21,7 +21,7 @@
 	final Bucket data;
 	final FreenetURI targetURI;
 	final ClientMetadata cm;
-	final InserterContext ctx;
+	final InsertContext ctx;
 	final String targetFilename;
 	private ClientPutState currentState;
 	private boolean finished;
@@ -48,7 +48,7 @@
 	 * is an error reading this in, we will restart from scratch.
 	 * @param targetFilename If set, create a one-file manifest containing this filename pointing to this file.
 	 */
-	public ClientPutter(ClientCallback client, Bucket data, FreenetURI targetURI, ClientMetadata cm, InserterContext ctx,
+	public ClientPutter(ClientCallback client, Bucket data, FreenetURI targetURI, ClientMetadata cm, InsertContext ctx,
 			ClientRequestScheduler chkScheduler, ClientRequestScheduler sskScheduler, short priorityClass, boolean getCHKOnly, 
 			boolean isMetadata, Object clientContext, SimpleFieldSet stored, String targetFilename) {
 		super(priorityClass, chkScheduler, sskScheduler, clientContext);
@@ -65,18 +65,18 @@
 		this.targetFilename = targetFilename;
 	}
 
-	public void start(boolean earlyEncode) throws InserterException {
+	public void start(boolean earlyEncode) throws InsertException {
 		start(earlyEncode, false);
 	}
 	
-	public boolean start(boolean earlyEncode, boolean restart) throws InserterException {
+	public boolean start(boolean earlyEncode, boolean restart) throws InsertException {
 		if(Logger.shouldLog(Logger.MINOR, this))
 			Logger.minor(this, "Starting "+this);
 		try {
 			this.targetURI.checkInsertURI();
 			
 			if(data == null)
-				throw new InserterException(InserterException.BUCKET_ERROR, "No data to insert", null);
+				throw new InsertException(InsertException.BUCKET_ERROR, "No data to insert", null);
 			
 			boolean cancel = false;
 			synchronized(this) {
@@ -94,7 +94,7 @@
 				}
 			}
 			if(cancel) {
-				onFailure(new InserterException(InserterException.CANCELLED), null);
+				onFailure(new InsertException(InsertException.CANCELLED), null);
 				oldProgress = null;
 				return false;
 			}
@@ -102,7 +102,7 @@
 				cancel = cancelled;
 			}
 			if(cancel) {
-				onFailure(new InserterException(InserterException.CANCELLED), null);
+				onFailure(new InsertException(InsertException.CANCELLED), null);
 				oldProgress = null;
 				return false;
 			}
@@ -112,10 +112,10 @@
 				cancel = cancelled;
 			}
 			if(cancel) {
-				onFailure(new InserterException(InserterException.CANCELLED), null);
+				onFailure(new InsertException(InsertException.CANCELLED), null);
 				return false;
 			}
-		} catch (InserterException e) {
+		} catch (InsertException e) {
 			Logger.error(this, "Failed to start insert: "+e, e);
 			synchronized(this) {
 				finished = true;
@@ -146,7 +146,7 @@
 		client.onSuccess(this);
 	}
 
-	public void onFailure(InserterException e, ClientPutState state) {
+	public void onFailure(InsertException e, ClientPutState state) {
 		synchronized(this) {
 			finished = true;
 			currentState = null;
@@ -178,7 +178,7 @@
 			startedStarting = true;
 		}
 		if(oldState != null) oldState.cancel();
-		onFailure(new InserterException(InserterException.CANCELLED), null);
+		onFailure(new InsertException(InsertException.CANCELLED), null);
 	}
 	
 	public synchronized boolean isFinished() {
@@ -229,7 +229,7 @@
 		return true;
 	}
 
-	public boolean restart(boolean earlyEncode) throws InserterException {
+	public boolean restart(boolean earlyEncode) throws InsertException {
 		return start(earlyEncode, true);
 	}
 

Modified: trunk/freenet/src/freenet/client/async/MultiPutCompletionCallback.java
===================================================================
--- trunk/freenet/src/freenet/client/async/MultiPutCompletionCallback.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/async/MultiPutCompletionCallback.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -2,7 +2,7 @@
 
 import java.util.Vector;
 
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 import freenet.client.Metadata;
 import freenet.keys.BaseClientKey;
 import freenet.support.Logger;
@@ -19,7 +19,7 @@
 	private final PutCompletionCallback cb;
 	private ClientPutState generator;
 	private final BaseClientPutter parent;
-	private InserterException e;
+	private InsertException e;
 	private boolean finished;
 	private boolean started;
 	public final Object token;
@@ -46,7 +46,7 @@
 		complete(null);
 	}
 
-	public void onFailure(InserterException e, ClientPutState state) {
+	public void onFailure(InsertException e, ClientPutState state) {
 		synchronized(this) {
 			if(finished) return;
 			waitingFor.remove(state);
@@ -60,7 +60,7 @@
 		complete(e);
 	}
 
-	private void complete(InserterException e) {
+	private void complete(InsertException e) {
 		synchronized(this) {
 			if(finished) return;
 			finished = true;
@@ -156,7 +156,7 @@
 		cb.onBlockSetFinished(this);
 	}
 
-	public void schedule() throws InserterException {
+	public void schedule() throws InsertException {
 		// Do nothing
 	}
 

Modified: trunk/freenet/src/freenet/client/async/PutCompletionCallback.java
===================================================================
--- trunk/freenet/src/freenet/client/async/PutCompletionCallback.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/async/PutCompletionCallback.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -1,6 +1,6 @@
 package freenet.client.async;
 
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 import freenet.client.Metadata;
 import freenet.keys.BaseClientKey;
 
@@ -11,7 +11,7 @@
 
 	public void onSuccess(ClientPutState state);
 	
-	public void onFailure(InserterException e, ClientPutState state);
+	public void onFailure(InsertException e, ClientPutState state);
 
 	public void onEncode(BaseClientKey usk, ClientPutState state);
 	

Modified: trunk/freenet/src/freenet/client/async/SimpleHealingQueue.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SimpleHealingQueue.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/async/SimpleHealingQueue.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -5,8 +5,8 @@
 
 import java.util.HashMap;
 
-import freenet.client.InserterContext;
-import freenet.client.InserterException;
+import freenet.client.InsertContext;
+import freenet.client.InsertException;
 import freenet.client.Metadata;
 import freenet.keys.BaseClientKey;
 import freenet.keys.CHKBlock;
@@ -18,10 +18,10 @@
 
 	final int maxRunning;
 	int counter;
-	InserterContext ctx;
+	InsertContext ctx;
 	final HashMap runningInserters;
 	
-	public SimpleHealingQueue(ClientRequestScheduler scheduler, InserterContext context, short prio, int maxRunning) {
+	public SimpleHealingQueue(ClientRequestScheduler scheduler, InsertContext context, short prio, int maxRunning) {
 		super(prio, scheduler, null, context);
 		this.ctx = context;
 		this.runningInserters = new HashMap();
@@ -87,7 +87,7 @@
 		data.free();
 	}
 
-	public void onFailure(InserterException e, ClientPutState state) {
+	public void onFailure(InsertException e, ClientPutState state) {
 		SingleBlockInserter sbi = (SingleBlockInserter)state;
 		Bucket data = (Bucket) sbi.getToken();
 		synchronized(this) {

Modified: trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -14,8 +14,8 @@
 import freenet.client.ClientMetadata;
 import freenet.client.DefaultMIMETypes;
 import freenet.client.InsertBlock;
-import freenet.client.InserterContext;
-import freenet.client.InserterException;
+import freenet.client.InsertContext;
+import freenet.client.InsertException;
 import freenet.client.Metadata;
 import freenet.client.MetadataUnresolvedException;
 import freenet.client.events.SplitfileProgressEvent;
@@ -30,7 +30,7 @@
 
 	private class PutHandler extends BaseClientPutter implements PutCompletionCallback {
 		
-		protected PutHandler(final SimpleManifestPutter smp, String name, Bucket data, ClientMetadata cm, boolean getCHKOnly) throws InserterException {
+		protected PutHandler(final SimpleManifestPutter smp, String name, Bucket data, ClientMetadata cm, boolean getCHKOnly) throws InsertException {
 			super(smp.priorityClass, smp.chkScheduler, smp.sskScheduler, smp.client);
 			this.cm = cm;
 			this.data = data;
@@ -67,7 +67,7 @@
 		private String targetInZip;
 		private final Bucket data;
 		
-		public void start() throws InserterException {
+		public void start() throws InsertException {
 			if((origSFI == null) && (metadata != null)) return;
 			origSFI.start(null);
 			origSFI = null;
@@ -94,7 +94,7 @@
 			insertedAllFiles();
 		}
 
-		public void onFailure(InserterException e, ClientPutState state) {
+		public void onFailure(InsertException e, ClientPutState state) {
 			logMINOR = Logger.shouldLog(Logger.MINOR, this);
 			if(logMINOR) Logger.minor(this, "Failed: "+this+" - "+e, e);
 			fail(e);
@@ -188,7 +188,7 @@
 	private FreenetURI finalURI;
 	private FreenetURI targetURI;
 	private boolean finished;
-	private final InserterContext ctx;
+	private final InsertContext ctx;
 	private final ClientCallback cb;
 	private final boolean getCHKOnly;
 	private boolean insertedAllFiles;
@@ -210,7 +210,7 @@
 	
 	public SimpleManifestPutter(ClientCallback cb, ClientRequestScheduler chkSched,
 			ClientRequestScheduler sskSched, HashMap manifestElements, short prioClass, FreenetURI target, 
-			String defaultName, InserterContext ctx, boolean getCHKOnly, Object clientContext, boolean earlyEncode) throws InserterException {
+			String defaultName, InsertContext ctx, boolean getCHKOnly, Object clientContext, boolean earlyEncode) throws InsertException {
 		super(prioClass, chkSched, sskSched, clientContext);
 		logMINOR = Logger.shouldLog(Logger.MINOR, this);
 		this.defaultName = defaultName;
@@ -236,7 +236,7 @@
 		// FIXME do something.
 	}
 
-	public void start() throws InserterException {
+	public void start() throws InsertException {
 		logMINOR = Logger.shouldLog(Logger.MINOR, this);
 		if(logMINOR) Logger.minor(this, "Starting "+this);
 		PutHandler[] running;
@@ -257,7 +257,7 @@
 						insertedAllFiles = true;
 						gotAllMetadata();
 					}
-				} catch (InserterException e) {
+				} catch (InsertException e) {
 					cancelAndFinish();
 					throw e;
 				}
@@ -266,11 +266,11 @@
 		if(cancel) cancel();
 	}
 	
-	private void makePutHandlers(HashMap manifestElements, HashMap putHandlersByName) throws InserterException {
+	private void makePutHandlers(HashMap manifestElements, HashMap putHandlersByName) throws InsertException {
 		makePutHandlers(manifestElements, putHandlersByName, "/");
 	}
 	
-	private void makePutHandlers(HashMap manifestElements, HashMap putHandlersByName, String ZipPrefix) throws InserterException {
+	private void makePutHandlers(HashMap manifestElements, HashMap putHandlersByName, String ZipPrefix) throws InsertException {
 		Iterator it = manifestElements.keySet().iterator();
 		while(it.hasNext()) {
 			String name = (String) it.next();
@@ -310,7 +310,7 @@
 					} else {
 						try {
 							ph = new PutHandler(this,name, data, cm, getCHKOnly);
-						} catch (InserterException e) {
+						} catch (InsertException e) {
 							cancelAndFinish();
 							throw e;
 						}
@@ -341,7 +341,7 @@
 		if(defaultName != null) {
 			Metadata meta = (Metadata) namesToByteArrays.get(defaultName);
 			if(meta == null) {
-				fail(new InserterException(InserterException.INVALID_URI, "Default name "+defaultName+" does not exist", null));
+				fail(new InsertException(InsertException.INVALID_URI, "Default name "+defaultName+" does not exist", null));
 				return;
 			}
 			namesToByteArrays.put("", meta);
@@ -371,15 +371,15 @@
 				bucket = BucketTools.makeImmutableBucket(ctx.bf, baseMetadata.writeToByteArray());
 				break;
 			} catch (IOException e) {
-				fail(new InserterException(InserterException.BUCKET_ERROR, e, null));
+				fail(new InsertException(InsertException.BUCKET_ERROR, e, null));
 				return;
 			} catch (MetadataUnresolvedException e) {
 				try {
 					resolve(e);
 				} catch (IOException e1) {
-					fail(new InserterException(InserterException.BUCKET_ERROR, e, null));
+					fail(new InsertException(InsertException.BUCKET_ERROR, e, null));
 					return;
-				} catch (InserterException e2) {
+				} catch (InsertException e2) {
 					fail(e2);
 				}
 			}
@@ -435,10 +435,10 @@
 				isMetadata = false;
 				insertAsArchiveManifest = true;
 			} catch (ZipException e) {
-				fail(new InserterException(InserterException.INTERNAL_ERROR, e, null));
+				fail(new InsertException(InsertException.INTERNAL_ERROR, e, null));
 				return;
 			} catch (IOException e) {
-				fail(new InserterException(InserterException.BUCKET_ERROR, e, null));
+				fail(new InsertException(InsertException.BUCKET_ERROR, e, null));
 				return;
 			}
 		} else
@@ -450,12 +450,12 @@
 			this.metadataPuttersByMetadata.put(baseMetadata, metadataInserter);
 			metadataPuttersUnfetchable.put(baseMetadata, metadataInserter);
 			metadataInserter.start(null);
-		} catch (InserterException e) {
+		} catch (InsertException e) {
 			fail(e);
 		}
 	}
 
-	private boolean resolve(MetadataUnresolvedException e) throws InserterException, IOException {
+	private boolean resolve(MetadataUnresolvedException e) throws InsertException, IOException {
 		Metadata[] metas = e.mustResolve;
 		boolean mustWait = false;
 		for(int i=0;i<metas.length;i++) {
@@ -522,7 +522,7 @@
 		cb.onSuccess(this);
 	}
 
-	private void fail(InserterException e) {
+	private void fail(InsertException e) {
 		// Cancel all, then call the callback
 		cancelAndFinish();
 		
@@ -543,7 +543,7 @@
 	}
 	
 	public void cancel() {
-		fail(new InserterException(InserterException.CANCELLED));
+		fail(new InsertException(InsertException.CANCELLED));
 	}
 	
 	public void onSuccess(ClientPutState state) {
@@ -569,7 +569,7 @@
 		complete();
 	}
 	
-	public void onFailure(InserterException e, ClientPutState state) {
+	public void onFailure(InsertException e, ClientPutState state) {
 		logMINOR = Logger.shouldLog(Logger.MINOR, this);
 		fail(e);
 	}

Modified: trunk/freenet/src/freenet/client/async/SingleBlockInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SingleBlockInserter.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/async/SingleBlockInserter.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -8,8 +8,8 @@
 import java.net.MalformedURLException;
 
 import freenet.client.FailureCodeTracker;
-import freenet.client.InserterContext;
-import freenet.client.InserterException;
+import freenet.client.InsertContext;
+import freenet.client.InsertException;
 import freenet.keys.CHKEncodeException;
 import freenet.keys.ClientCHKBlock;
 import freenet.keys.ClientKeyBlock;
@@ -37,7 +37,7 @@
 	FreenetURI resultingURI;
 	final PutCompletionCallback cb;
 	final BaseClientPutter parent;
-	final InserterContext ctx;
+	final InsertContext ctx;
 	private int retries;
 	private final FailureCodeTracker errors;
 	private boolean finished;
@@ -50,7 +50,7 @@
 	final int sourceLength;
 	private int consecutiveRNFs;
 	
-	public SingleBlockInserter(BaseClientPutter parent, Bucket data, short compressionCodec, FreenetURI uri, InserterContext ctx, PutCompletionCallback cb, boolean isMetadata, int sourceLength, int token, boolean getCHKOnly, boolean addToParent, boolean dontSendEncoded, Object tokenObject) {
+	public SingleBlockInserter(BaseClientPutter parent, Bucket data, short compressionCodec, FreenetURI uri, InsertContext ctx, PutCompletionCallback cb, boolean isMetadata, int sourceLength, int token, boolean getCHKOnly, boolean addToParent, boolean dontSendEncoded, Object tokenObject) {
 		this.consecutiveRNFs = 0;
 		this.tokenObject = tokenObject;
 		this.token = token;
@@ -76,37 +76,37 @@
 		logMINOR = Logger.shouldLog(Logger.MINOR, this);
 	}
 
-	protected ClientKeyBlock innerEncode() throws InserterException {
+	protected ClientKeyBlock innerEncode() throws InsertException {
 		String uriType = uri.getKeyType().toUpperCase();
 		if(uriType.equals("CHK")) {
 			try {
 				return ClientCHKBlock.encode(sourceData, isMetadata, compressionCodec == -1, compressionCodec, sourceLength);
 			} catch (CHKEncodeException e) {
 				Logger.error(this, "Caught "+e, e);
-				throw new InserterException(InserterException.INTERNAL_ERROR, e, null);
+				throw new InsertException(InsertException.INTERNAL_ERROR, e, null);
 			} catch (IOException e) {
 				Logger.error(this, "Caught "+e+" encoding data "+sourceData, e);
-				throw new InserterException(InserterException.BUCKET_ERROR, e, null);
+				throw new InsertException(InsertException.BUCKET_ERROR, e, null);
 			}
 		} else if(uriType.equals("SSK") || uriType.equals("KSK")) {
 			try {
 				InsertableClientSSK ik = InsertableClientSSK.create(uri);
 				return ik.encode(sourceData, isMetadata, compressionCodec == -1, compressionCodec, sourceLength, ctx.random);
 			} catch (MalformedURLException e) {
-				throw new InserterException(InserterException.INVALID_URI, e, null);
+				throw new InsertException(InsertException.INVALID_URI, e, null);
 			} catch (SSKEncodeException e) {
 				Logger.error(this, "Caught "+e, e);
-				throw new InserterException(InserterException.INTERNAL_ERROR, e, null);
+				throw new InsertException(InsertException.INTERNAL_ERROR, e, null);
 			} catch (IOException e) {
 				Logger.error(this, "Caught "+e, e);
-				throw new InserterException(InserterException.BUCKET_ERROR, e, null);
+				throw new InsertException(InsertException.BUCKET_ERROR, e, null);
 			}
 		} else {
-			throw new InserterException(InserterException.INVALID_URI, "Unknown keytype "+uriType, null);
+			throw new InsertException(InsertException.INVALID_URI, "Unknown keytype "+uriType, null);
 		}
 	}
 
-	protected ClientKeyBlock encode() throws InserterException {
+	protected ClientKeyBlock encode() throws InsertException {
 		ClientKeyBlock block;
 		boolean shouldSend;
 		synchronized(this) {
@@ -139,29 +139,29 @@
 
 	public void onFailure(LowLevelPutException e) {
 		if(parent.isCancelled()) {
-			fail(new InserterException(InserterException.CANCELLED));
+			fail(new InsertException(InsertException.CANCELLED));
 			return;
 		}
 		
 		switch(e.code) {
 		case LowLevelPutException.COLLISION:
-			fail(new InserterException(InserterException.COLLISION));
+			fail(new InsertException(InsertException.COLLISION));
 			break;
 		case LowLevelPutException.INTERNAL_ERROR:
-			errors.inc(InserterException.INTERNAL_ERROR);
+			errors.inc(InsertException.INTERNAL_ERROR);
 			break;
 		case LowLevelPutException.REJECTED_OVERLOAD:
-			errors.inc(InserterException.REJECTED_OVERLOAD);
+			errors.inc(InsertException.REJECTED_OVERLOAD);
 			break;
 		case LowLevelPutException.ROUTE_NOT_FOUND:
-			errors.inc(InserterException.ROUTE_NOT_FOUND);
+			errors.inc(InsertException.ROUTE_NOT_FOUND);
 			break;
 		case LowLevelPutException.ROUTE_REALLY_NOT_FOUND:
-			errors.inc(InserterException.ROUTE_REALLY_NOT_FOUND);
+			errors.inc(InsertException.ROUTE_REALLY_NOT_FOUND);
 			break;
 		default:
 			Logger.error(this, "Unknown LowLevelPutException code: "+e.code);
-			errors.inc(InserterException.INTERNAL_ERROR);
+			errors.inc(InsertException.INTERNAL_ERROR);
 		}
 		if(e.code == LowLevelPutException.ROUTE_NOT_FOUND) {
 			consecutiveRNFs++;
@@ -176,17 +176,17 @@
 		if(logMINOR) Logger.minor(this, "Failed: "+e);
 		retries++;
 		if((retries > ctx.maxInsertRetries) && (ctx.maxInsertRetries != -1)) {
-			fail(InserterException.construct(errors));
+			fail(InsertException.construct(errors));
 			return;
 		}
 		getScheduler().register(this);
 	}
 
-	private void fail(InserterException e) {
+	private void fail(InsertException e) {
 		fail(e, false);
 	}
 	
-	private void fail(InserterException e, boolean forceFatal) {
+	private void fail(InsertException e, boolean forceFatal) {
 		synchronized(this) {
 			if(finished) return;
 			finished = true;
@@ -204,17 +204,17 @@
 				if(finished) return null;
 			}
 			return encode();				
-		} catch (InserterException e) {
+		} catch (InsertException e) {
 			cb.onFailure(e, this);
 			return null;
 		} catch (Throwable t) {
 			Logger.error(this, "Caught "+t, t);
-			cb.onFailure(new InserterException(InserterException.INTERNAL_ERROR, t, null), this);
+			cb.onFailure(new InsertException(InsertException.INTERNAL_ERROR, t, null), this);
 			return null;
 		}
 	}
 
-	public void schedule() throws InserterException {
+	public void schedule() throws InsertException {
 		synchronized(this) {
 			if(finished) return;
 		}
@@ -257,7 +257,7 @@
 	public void onSuccess() {
 		if(logMINOR) Logger.minor(this, "Succeeded ("+this+"): "+token);
 		if(parent.isCancelled()) {
-			fail(new InserterException(InserterException.CANCELLED));
+			fail(new InsertException(InsertException.CANCELLED));
 			return;
 		}
 		synchronized(this) {
@@ -278,7 +278,7 @@
 		}
 		RandomGrabArray arr = getParentGrabArray();
 		if(arr != null) arr.remove(this);
-		cb.onFailure(new InserterException(InserterException.CANCELLED), this);
+		cb.onFailure(new InsertException(InsertException.CANCELLED), this);
 	}
 
 	public synchronized boolean isCancelled() {
@@ -293,9 +293,9 @@
 				core.realPut(b, ctx.cacheLocalRequests);
 			else {
 				if(parent.isCancelled())
-					fail(new InserterException(InserterException.CANCELLED));
+					fail(new InsertException(InsertException.CANCELLED));
 				else
-					fail(new InserterException(InserterException.BUCKET_ERROR));
+					fail(new InsertException(InsertException.BUCKET_ERROR));
 				return false;
 			}
 		} catch (LowLevelPutException e) {
@@ -328,7 +328,7 @@
 	public void tryEncode() {
 		try {
 			encode();
-		} catch (InserterException e) {
+		} catch (InsertException e) {
 			fail(e);
 		} catch (Throwable t) {
 			Logger.error(this, "Caught "+t, t);

Modified: trunk/freenet/src/freenet/client/async/SingleFileInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SingleFileInserter.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/async/SingleFileInserter.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -5,8 +5,8 @@
 import java.util.HashMap;
 
 import freenet.client.InsertBlock;
-import freenet.client.InserterContext;
-import freenet.client.InserterException;
+import freenet.client.InsertContext;
+import freenet.client.InsertException;
 import freenet.client.Metadata;
 import freenet.client.MetadataUnresolvedException;
 import freenet.client.events.FinishedCompressionEvent;
@@ -38,7 +38,7 @@
 	private static boolean logMINOR;
 	final BaseClientPutter parent;
 	final InsertBlock block;
-	final InserterContext ctx;
+	final InsertContext ctx;
 	final boolean metadata;
 	final PutCompletionCallback cb;
 	final boolean getCHKOnly;
@@ -64,12 +64,12 @@
 	 * @param freeData If true, free the data when possible.
 	 * @param targetFilename 
 	 * @param earlyEncode If true, try to get a URI as quickly as possible.
-	 * @throws InserterException
+	 * @throws InsertException
 	 */
 	SingleFileInserter(BaseClientPutter parent, PutCompletionCallback cb, InsertBlock block, 
-			boolean metadata, InserterContext ctx, boolean dontCompress, 
+			boolean metadata, InsertContext ctx, boolean dontCompress, 
 			boolean getCHKOnly, boolean reportMetadataOnly, Object token, boolean insertAsArchiveManifest, 
-			boolean freeData, String targetFilename, boolean earlyEncode) throws InserterException {
+			boolean freeData, String targetFilename, boolean earlyEncode) throws InsertException {
 		this.earlyEncode = earlyEncode;
 		this.reportMetadataOnly = reportMetadataOnly;
 		this.token = token;
@@ -85,7 +85,7 @@
 		logMINOR = Logger.shouldLog(Logger.MINOR, this);
 	}
 	
-	public void start(SimpleFieldSet fs) throws InserterException {
+	public void start(SimpleFieldSet fs) throws InsertException {
 		if(fs != null) {
 			String type = fs.get("Type");
 			if(type.equals("SplitHandler")) {
@@ -119,24 +119,24 @@
 		public void run() {
 			try {
 				tryCompress();
-			} catch (InserterException e) {
+			} catch (InsertException e) {
 				cb.onFailure(e, SingleFileInserter.this);
             } catch (OutOfMemoryError e) {
 				OOMHandler.handleOOM(e);
 				System.err.println("OffThreadCompressor thread above failed.");
 				// Might not be heap, so try anyway
-				cb.onFailure(new InserterException(InserterException.INTERNAL_ERROR, e, null), SingleFileInserter.this);
+				cb.onFailure(new InsertException(InsertException.INTERNAL_ERROR, e, null), SingleFileInserter.this);
             } catch (Throwable t) {
                 Logger.error(this, "Caught in OffThreadCompressor: "+t, t);
                 System.err.println("Caught in OffThreadCompressor: "+t);
                 t.printStackTrace();
                 // Try to fail gracefully
-				cb.onFailure(new InserterException(InserterException.INTERNAL_ERROR, t, null), SingleFileInserter.this);
+				cb.onFailure(new InsertException(InsertException.INTERNAL_ERROR, t, null), SingleFileInserter.this);
 			}
 		}
 	}
 	
-	private void tryCompress() throws InserterException {
+	private void tryCompress() throws InsertException {
 		// First, determine how small it needs to be
 		Bucket origData = block.getData();
 		Bucket data = origData;
@@ -153,7 +153,7 @@
 			blockSize = CHKBlock.DATA_LENGTH;
 			oneBlockCompressedSize = CHKBlock.MAX_COMPRESSED_DATA_LENGTH;
 		} else {
-			throw new InserterException(InserterException.INVALID_URI, "Unknown key type: "+type, null);
+			throw new InsertException(InsertException.INVALID_URI, "Unknown key type: "+type, null);
 		}
 		
 		Compressor bestCodec = null;
@@ -193,7 +193,7 @@
 					}
 				}
 			} catch (IOException e) {
-				throw new InserterException(InserterException.BUCKET_ERROR, e, null);
+				throw new InsertException(InsertException.BUCKET_ERROR, e, null);
 			} catch (CompressionOutputSizeException e) {
 				// Impossible
 				throw new Error(e);
@@ -215,7 +215,7 @@
 		boolean fitsInOneCHK = bestCodec == null ? compressedDataSize < CHKBlock.DATA_LENGTH : compressedDataSize < CHKBlock.MAX_COMPRESSED_DATA_LENGTH;
 
 		if(block.getData().size() > Integer.MAX_VALUE)
-			throw new InserterException(InserterException.INTERNAL_ERROR, "2GB+ should not encode to one block!", null);
+			throw new InsertException(InsertException.INTERNAL_ERROR, "2GB+ should not encode to one block!", null);
 
 		boolean noMetadata = ((block.clientMetadata == null) || block.clientMetadata.isTrivial()) && targetFilename == null;
 		if(noMetadata && !insertAsArchiveManifest) {
@@ -248,11 +248,11 @@
 					metadataBucket = BucketTools.makeImmutableBucket(ctx.bf, meta.writeToByteArray());
 				} catch (IOException e) {
 					Logger.error(this, "Caught "+e, e);
-					throw new InserterException(InserterException.BUCKET_ERROR, e, null);
+					throw new InsertException(InsertException.BUCKET_ERROR, e, null);
 				} catch (MetadataUnresolvedException e) {
 					// Impossible, we're not inserting a manifest.
 					Logger.error(this, "Caught "+e, e);
-					throw new InserterException(InserterException.INTERNAL_ERROR, "Got MetadataUnresolvedException in SingleFileInserter: "+e.toString(), null);
+					throw new InsertException(InsertException.INTERNAL_ERROR, "Got MetadataUnresolvedException in SingleFileInserter: "+e.toString(), null);
 				}
 				ClientPutState metaPutter = createInserter(parent, metadataBucket, (short) -1, block.desiredURI, ctx, mcb, true, (int)origSize, -1, getCHKOnly, true, false);
 				mcb.addURIGenerator(metaPutter);
@@ -299,8 +299,8 @@
 	}
 
 	private ClientPutState createInserter(BaseClientPutter parent, Bucket data, short compressionCodec, FreenetURI uri, 
-			InserterContext ctx, PutCompletionCallback cb, boolean isMetadata, int sourceLength, int token, boolean getCHKOnly, 
-			boolean addToParent, boolean encodeCHK) throws InserterException {
+			InsertContext ctx, PutCompletionCallback cb, boolean isMetadata, int sourceLength, int token, boolean getCHKOnly, 
+			boolean addToParent, boolean encodeCHK) throws InsertException {
 		
 		uri.checkInsertURI(); // will throw an exception if needed
 		
@@ -309,7 +309,7 @@
 				return new USKInserter(parent, data, compressionCodec, uri, ctx, cb, isMetadata, sourceLength, token, 
 					getCHKOnly, addToParent, this.token);
 			} catch (MalformedURLException e) {
-				throw new InserterException(InserterException.INVALID_URI, e, null);
+				throw new InsertException(InsertException.INVALID_URI, e, null);
 			}
 		} else {
 			SingleBlockInserter sbi = 
@@ -345,10 +345,10 @@
 		 * @param forceMetadata If true, the insert is metadata, regardless of what the
 		 * encompassing SplitFileInserter says (i.e. it's multi-level metadata).
 		 * @throws ResumeException Thrown if the resume fails.
-		 * @throws InserterException Thrown if some other error prevents the insert
+		 * @throws InsertException Thrown if some other error prevents the insert
 		 * from starting.
 		 */
-		void start(SimpleFieldSet fs, boolean forceMetadata) throws ResumeException, InserterException {
+		void start(SimpleFieldSet fs, boolean forceMetadata) throws ResumeException, InsertException {
 			
 			boolean meta = metadata || forceMetadata;
 			
@@ -435,7 +435,7 @@
 				cb.onSuccess(this);
 		}
 
-		public void onFailure(InserterException e, ClientPutState state) {
+		public void onFailure(InsertException e, ClientPutState state) {
 			synchronized(this) {
 				if(finished){
 					if(freeData)
@@ -447,7 +447,7 @@
 		}
 
 		public void onMetadata(Metadata meta, ClientPutState state) {
-			InserterException e = null;
+			InsertException e = null;
 			synchronized(this) {
 				if(finished) return;
 				if(reportMetadataOnly) {
@@ -458,10 +458,10 @@
 					metaInsertSuccess = true;
 				} else if(state == metadataPutter) {
 					Logger.error(this, "Got metadata for metadata");
-					e = new InserterException(InserterException.INTERNAL_ERROR, "Did not expect to get metadata for metadata inserter", null);
+					e = new InsertException(InsertException.INTERNAL_ERROR, "Did not expect to get metadata for metadata inserter", null);
 				} else if(state != sfi) {
 					Logger.error(this, "Got metadata from unknown state "+state);
-					e = new InserterException(InserterException.INTERNAL_ERROR, "Did not expect to get metadata for metadata inserter", null);
+					e = new InsertException(InsertException.INTERNAL_ERROR, "Did not expect to get metadata for metadata inserter", null);
 				} else {
 					// Already started metadata putter ? (in which case we've got the metadata twice)
 					if(metadataPutter != null) return;
@@ -481,7 +481,7 @@
 				metaBytes = meta.writeToByteArray();
 			} catch (MetadataUnresolvedException e1) {
 				Logger.error(this, "Impossible: "+e1, e1);
-				InserterException ex = new InserterException(InserterException.INTERNAL_ERROR, "MetadataUnresolvedException in SingleFileInserter.SplitHandler: "+e1, null);
+				InsertException ex = new InsertException(InsertException.INTERNAL_ERROR, "MetadataUnresolvedException in SingleFileInserter.SplitHandler: "+e1, null);
 				ex.initCause(e1);
 				fail(ex);
 				return;
@@ -500,7 +500,7 @@
 						metaBytes = meta.writeToByteArray();
 					} catch (MetadataUnresolvedException e1) {
 						Logger.error(this, "Impossible (2): "+e1, e1);
-						InserterException ex = new InserterException(InserterException.INTERNAL_ERROR, "MetadataUnresolvedException in SingleFileInserter.SplitHandler(2): "+e1, null);
+						InsertException ex = new InsertException(InsertException.INTERNAL_ERROR, "MetadataUnresolvedException in SingleFileInserter.SplitHandler(2): "+e1, null);
 						ex.initCause(e1);
 						fail(ex);
 						return;
@@ -512,7 +512,7 @@
 			try {
 				metadataBucket = BucketTools.makeImmutableBucket(ctx.bf, metaBytes);
 			} catch (IOException e1) {
-				InserterException ex = new InserterException(InserterException.BUCKET_ERROR, e1, null);
+				InsertException ex = new InsertException(InsertException.BUCKET_ERROR, e1, null);
 				fail(ex);
 				return;
 			}
@@ -525,14 +525,14 @@
 					if(!(dataFetchable || earlyEncode)) return;
 				}
 				if(logMINOR) Logger.minor(this, "Putting metadata on "+metadataPutter+" from "+sfi+" ("+((SplitFileInserter)sfi).getLength()+ ')');
-			} catch (InserterException e1) {
+			} catch (InsertException e1) {
 				cb.onFailure(e1, this);
 				return;
 			}
 			startMetadata();
 		}
 
-		private void fail(InserterException e) {
+		private void fail(InsertException e) {
 			if(logMINOR) Logger.minor(this, "Failing: "+e, e);
 			ClientPutState oldSFI = null;
 			ClientPutState oldMetadataPutter = null;
@@ -593,7 +593,7 @@
 			cb.onBlockSetFinished(this);
 		}
 
-		public void schedule() throws InserterException {
+		public void schedule() throws InsertException {
 			sfi.schedule();
 		}
 
@@ -672,7 +672,7 @@
 					// Get all the URIs ASAP so we can start to insert the metadata.
 					((SplitFileInserter)splitInserter).forceEncode();
 				}
-			} catch (InserterException e1) {
+			} catch (InsertException e1) {
 				Logger.error(this, "Failing "+this+" : "+e1, e1);
 				fail(e1);
 				return;
@@ -690,7 +690,7 @@
 			block.free();
 	}
 
-	public void schedule() throws InserterException {
+	public void schedule() throws InsertException {
 		start(null);
 	}
 

Modified: trunk/freenet/src/freenet/client/async/SplitFileInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileInserter.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/async/SplitFileInserter.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -9,8 +9,8 @@
 import freenet.client.ClientMetadata;
 import freenet.client.FECCodec;
 import freenet.client.FailureCodeTracker;
-import freenet.client.InserterContext;
-import freenet.client.InserterException;
+import freenet.client.InsertContext;
+import freenet.client.InsertException;
 import freenet.client.Metadata;
 import freenet.keys.CHKBlock;
 import freenet.keys.ClientCHK;
@@ -24,7 +24,7 @@
 
 	private static boolean logMINOR;
 	final BaseClientPutter parent;
-	final InserterContext ctx;
+	final InsertContext ctx;
 	final PutCompletionCallback cb;
 	final long dataLength;
 	final short compressionCodec;
@@ -66,7 +66,7 @@
 		return fs;
 	}
 
-	public SplitFileInserter(BaseClientPutter put, PutCompletionCallback cb, Bucket data, Compressor bestCodec, long decompressedLength, ClientMetadata clientMetadata, InserterContext ctx, boolean getCHKOnly, boolean isMetadata, Object token, boolean insertAsArchiveManifest, boolean freeData) throws InserterException {
+	public SplitFileInserter(BaseClientPutter put, PutCompletionCallback cb, Bucket data, Compressor bestCodec, long decompressedLength, ClientMetadata clientMetadata, InsertContext ctx, boolean getCHKOnly, boolean isMetadata, Object token, boolean insertAsArchiveManifest, boolean freeData) throws InsertException {
 		logMINOR = Logger.shouldLog(Logger.MINOR, this);
 		this.parent = put;
 		this.insertAsArchiveManifest = insertAsArchiveManifest;
@@ -82,7 +82,7 @@
 		try {
 			dataBuckets = BucketTools.split(data, CHKBlock.DATA_LENGTH, ctx.persistentBucketFactory);
 		} catch (IOException e) {
-			throw new InserterException(InserterException.BUCKET_ERROR, e, null);
+			throw new InsertException(InsertException.BUCKET_ERROR, e, null);
 		}
 		if(freeData) data.free();
 		countDataBlocks = dataBuckets.length;
@@ -104,7 +104,7 @@
 		countCheckBlocks = count;
 	}
 
-	public SplitFileInserter(BaseClientPutter parent, PutCompletionCallback cb, ClientMetadata clientMetadata, InserterContext ctx, boolean getCHKOnly, boolean metadata, Object token, boolean insertAsArchiveManifest, SimpleFieldSet fs) throws ResumeException {
+	public SplitFileInserter(BaseClientPutter parent, PutCompletionCallback cb, ClientMetadata clientMetadata, InsertContext ctx, boolean getCHKOnly, boolean metadata, Object token, boolean insertAsArchiveManifest, SimpleFieldSet fs) throws ResumeException {
 		logMINOR = Logger.shouldLog(Logger.MINOR, this);
 		this.parent = parent;
 		this.insertAsArchiveManifest = insertAsArchiveManifest;
@@ -230,7 +230,7 @@
 		return (SplitFileInserterSegment[]) segs.toArray(new SplitFileInserterSegment[segs.size()]);
 	}
 	
-	public void start() throws InserterException {
+	public void start() throws InsertException {
 		for(int i=0;i<segments.length;i++)
 			segments[i].start();
 		
@@ -300,13 +300,13 @@
 		if(missingURIs) {
 			if(logMINOR) Logger.minor(this, "Missing URIs");
 			// Error
-			fail(new InserterException(InserterException.INTERNAL_ERROR, "Missing URIs after encoding", null));
+			fail(new InsertException(InsertException.INTERNAL_ERROR, "Missing URIs after encoding", null));
 			return;
 		} else
 			cb.onMetadata(m, this);
 	}
 	
-	private void fail(InserterException e) {
+	private void fail(InsertException e) {
 		synchronized(this) {
 			if(finished) return;
 			finished = true;
@@ -379,7 +379,7 @@
 				}
 			}
 			
-			InserterException e = segment.getException();
+			InsertException e = segment.getException();
 			if((e != null) && e.isFatal()) {
 				cancel();
 			} else {
@@ -413,7 +413,7 @@
 			FailureCodeTracker tracker = new FailureCodeTracker(true);
 			boolean allSucceeded = true;
 			for(int i=0;i<segments.length;i++) {
-				InserterException e = segments[i].getException();
+				InsertException e = segments[i].getException();
 				if(e == null) continue;
 				if(logMINOR) Logger.minor(this, "Failure on segment "+i+" : "+segments[i]+" : "+e, e);
 				allSucceeded = false;
@@ -424,12 +424,12 @@
 			if(allSucceeded)
 				cb.onSuccess(this);
 			else {
-				cb.onFailure(InserterException.construct(tracker), this);
+				cb.onFailure(InsertException.construct(tracker), this);
 			}
 		} catch (Throwable t) {
 			// We MUST tell the parent *something*!
 			Logger.error(this, "Caught "+t, t);
-			cb.onFailure(new InserterException(InserterException.INTERNAL_ERROR), this);
+			cb.onFailure(new InsertException(InsertException.INTERNAL_ERROR), this);
 		}
 	}
 
@@ -442,7 +442,7 @@
 			segments[i].cancel();
 	}
 
-	public void schedule() throws InserterException {
+	public void schedule() throws InsertException {
 		start();
 	}
 

Modified: trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -5,8 +5,8 @@
 import freenet.client.FECCodec;
 import freenet.client.FECJob;
 import freenet.client.FailureCodeTracker;
-import freenet.client.InserterContext;
-import freenet.client.InserterException;
+import freenet.client.InsertContext;
+import freenet.client.InsertException;
 import freenet.client.Metadata;
 import freenet.client.FECCodec.StandardOnionFECCodecEncoderCallback;
 import freenet.keys.BaseClientKey;
@@ -42,7 +42,7 @@
 
 	final SingleBlockInserter[] checkBlockInserters;
 
-	final InserterContext blockInsertContext;
+	final InsertContext blockInsertContext;
 
 	final int segNo;
 
@@ -54,7 +54,7 @@
 
 	private boolean hasURIs;
 
-	private InserterException toThrow;
+	private InsertException toThrow;
 
 	private final FailureCodeTracker errors;
 
@@ -66,7 +66,7 @@
 
 	public SplitFileInserterSegment(SplitFileInserter parent,
 			FECCodec splitfileAlgo, Bucket[] origDataBlocks,
-			InserterContext blockInsertContext, boolean getCHKOnly, int segNo) {
+			InsertContext blockInsertContext, boolean getCHKOnly, int segNo) {
 		logMINOR = Logger.shouldLog(Logger.MINOR, this);
 		this.parent = parent;
 		this.getCHKOnly = getCHKOnly;
@@ -92,7 +92,7 @@
 	 * @throws ResumeException
 	 */
 	public SplitFileInserterSegment(SplitFileInserter parent,
-			SimpleFieldSet fs, short splitfileAlgorithm, InserterContext ctx,
+			SimpleFieldSet fs, short splitfileAlgorithm, InsertContext ctx,
 			boolean getCHKOnly, int segNo) throws ResumeException {
 		this.parent = parent;
 		this.getCHKOnly = getCHKOnly;
@@ -109,7 +109,7 @@
 		else
 			this.errors = new FailureCodeTracker(true);
 		if (finished && !errors.isEmpty())
-			toThrow = InserterException.construct(errors);
+			toThrow = InsertException.construct(errors);
 		blocksGotURI = 0;
 		blocksCompleted = 0;
 		SimpleFieldSet dataFS = fs.subset("DataBlocks");
@@ -387,7 +387,7 @@
 		return fs;
 	}
 
-	public void start() throws InserterException {
+	public void start() throws InsertException {
 		if (logMINOR)
 			Logger.minor(this, "Starting segment " + segNo + " of " + parent
 					+ " (" + parent.dataLength + "): " + this + " ( finished="
@@ -473,8 +473,8 @@
 			}
 		} catch (Throwable t) {
 			Logger.error(this, "Caught " + t + " while encoding " + this, t);
-			InserterException ex = new InserterException(
-					InserterException.INTERNAL_ERROR, t, null);
+			InsertException ex = new InsertException(
+					InsertException.INTERNAL_ERROR, t, null);
 			finish(ex);
 			return;
 		}
@@ -497,7 +497,7 @@
 		}
 	}
 
-	private void finish(InserterException ex) {
+	private void finish(InsertException ex) {
 		if (logMINOR)
 			Logger.minor(this, "Finishing " + this + " with " + ex, ex);
 		synchronized (this) {
@@ -514,7 +514,7 @@
 			if (finished)
 				return;
 			finished = true;
-			toThrow = InserterException.construct(errors);
+			toThrow = InsertException.construct(errors);
 		}
 		parent.segmentFinished(this);
 	}
@@ -568,7 +568,7 @@
 		completed(x);
 	}
 
-	public void onFailure(InserterException e, ClientPutState state) {
+	public void onFailure(InsertException e, ClientPutState state) {
 		if (parent.parent.isCancelled()) {
 			parent.cancel();
 			return;
@@ -657,7 +657,7 @@
 		return dataURIs;
 	}
 
-	InserterException getException() {
+	InsertException getException() {
 		synchronized (this) {
 			return toThrow;
 		}
@@ -669,7 +669,7 @@
 				return;
 			finished = true;
 			if (toThrow != null)
-				toThrow = new InserterException(InserterException.CANCELLED);
+				toThrow = new InsertException(InsertException.CANCELLED);
 		}
 		for (int i = 0; i < dataBlockInserters.length; i++) {
 			SingleBlockInserter sbi = dataBlockInserters[i];

Modified: trunk/freenet/src/freenet/client/async/USKInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/USKInserter.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/async/USKInserter.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -7,8 +7,8 @@
 import java.net.MalformedURLException;
 import java.util.Arrays;
 
-import freenet.client.InserterContext;
-import freenet.client.InserterException;
+import freenet.client.InsertContext;
+import freenet.client.InsertException;
 import freenet.client.Metadata;
 import freenet.keys.BaseClientKey;
 import freenet.keys.FreenetURI;
@@ -30,7 +30,7 @@
 	final BaseClientPutter parent;
 	final Bucket data;
 	final short compressionCodec;
-	final InserterContext ctx;
+	final InsertContext ctx;
 	final PutCompletionCallback cb;
 	final boolean isMetadata;
 	final int sourceLength;
@@ -51,7 +51,7 @@
 	/** After attempting inserts on this many slots, go back to the Fetcher */
 	private static final long MAX_TRIED_SLOTS = 10;
 	
-	public void schedule() throws InserterException {
+	public void schedule() throws InsertException {
 		// Caller calls schedule()
 		// schedule() calls scheduleFetcher()
 		// scheduleFetcher() creates a Fetcher (set up to tell us about author-errors as well as valid inserts)
@@ -114,7 +114,7 @@
 		}
 		try {
 			sbi.schedule();
-		} catch (InserterException e) {
+		} catch (InsertException e) {
 			cb.onFailure(e, this);
 		}
 	}
@@ -136,9 +136,9 @@
 		// FINISHED!!!! Yay!!!
 	}
 
-	public synchronized void onFailure(InserterException e, ClientPutState state) {
+	public synchronized void onFailure(InsertException e, ClientPutState state) {
 		sbi = null;
-		if(e.getMode() == InserterException.COLLISION) {
+		if(e.getMode() == InsertException.COLLISION) {
 			// Try the next slot
 			edition++;
 			if(consecutiveCollisions++ > MAX_TRIED_SLOTS)
@@ -151,7 +151,7 @@
 	}
 
 	public USKInserter(BaseClientPutter parent, Bucket data, short compressionCodec, FreenetURI uri, 
-			InserterContext ctx, PutCompletionCallback cb, boolean isMetadata, int sourceLength, int token, 
+			InsertContext ctx, PutCompletionCallback cb, boolean isMetadata, int sourceLength, int token, 
 			boolean getCHKOnly, boolean addToParent, Object tokenObject) throws MalformedURLException {
 		this.tokenObject = tokenObject;
 		this.parent = parent;
@@ -185,7 +185,7 @@
 		synchronized(this) {
 			finished = true;
 		}
-		cb.onFailure(new InserterException(InserterException.CANCELLED), this);
+		cb.onFailure(new InsertException(InsertException.CANCELLED), this);
 	}
 
 	public void onFailure() {

Modified: trunk/freenet/src/freenet/client/events/BlockInsertErrorEvent.java
===================================================================
--- trunk/freenet/src/freenet/client/events/BlockInsertErrorEvent.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/client/events/BlockInsertErrorEvent.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -3,17 +3,17 @@
  * http://www.gnu.org/ for further details of the GPL. */
 package freenet.client.events;
 
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 import freenet.keys.FreenetURI;
 
 public class BlockInsertErrorEvent implements ClientEvent {
 
 	public static final int code = 0x05;
-	public final InserterException e;
+	public final InsertException e;
 	public final FreenetURI key;
 	public final int retryNumber;
 
-	public BlockInsertErrorEvent(InserterException e, FreenetURI key, int retryNumber) {
+	public BlockInsertErrorEvent(InsertException e, FreenetURI key, int retryNumber) {
 		this.e = e;
 		this.key = key;
 		this.retryNumber = retryNumber;

Modified: trunk/freenet/src/freenet/clients/http/NinjaSpider.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/NinjaSpider.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/clients/http/NinjaSpider.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -36,7 +36,7 @@
 import freenet.client.FetchException;
 import freenet.client.FetchResult;
 import freenet.client.FetchContext;
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 import freenet.client.async.BaseClientPutter;
 import freenet.client.async.ClientCallback;
 import freenet.client.async.ClientGetter;
@@ -221,7 +221,7 @@
 		// Ignore
 	}
 
-	public void onFailure(InserterException e, BaseClientPutter state) {
+	public void onFailure(InsertException e, BaseClientPutter state) {
 		// Ignore
 	}
 

Modified: trunk/freenet/src/freenet/clients/http/Spider.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/Spider.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/clients/http/Spider.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -26,7 +26,7 @@
 import freenet.client.FetchException;
 import freenet.client.FetchResult;
 import freenet.client.FetchContext;
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 import freenet.client.async.BaseClientPutter;
 import freenet.client.async.ClientCallback;
 import freenet.client.async.ClientGetter;
@@ -165,7 +165,7 @@
 		// Ignore
 	}
 
-	public void onFailure(InserterException e, BaseClientPutter state) {
+	public void onFailure(InsertException e, BaseClientPutter state) {
 		// Ignore
 	}
 

Modified: trunk/freenet/src/freenet/clients/http/Toadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/Toadlet.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/clients/http/Toadlet.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -13,7 +13,7 @@
 import freenet.client.FetchResult;
 import freenet.client.HighLevelSimpleClient;
 import freenet.client.InsertBlock;
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 import freenet.keys.FreenetURI;
 import freenet.l10n.L10n;
 import freenet.support.HTMLEncoder;
@@ -117,7 +117,7 @@
 		return client.fetch(uri, maxSize, clientContext);
 	}
 
-	FreenetURI insert(InsertBlock insert, String filenameHint, boolean getCHKOnly) throws InserterException {
+	FreenetURI insert(InsertBlock insert, String filenameHint, boolean getCHKOnly) throws InsertException {
 		// For now, just run it blocking.
 		insert.desiredURI.checkInsertURI();
 		return client.insert(insert, getCHKOnly, filenameHint);

Modified: trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -16,7 +16,7 @@
 import freenet.client.ClientMetadata;
 import freenet.client.HighLevelSimpleClient;
 import freenet.client.InsertBlock;
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 import freenet.clients.http.filter.GenericReadFilterCallback;
 import freenet.clients.http.bookmark.BookmarkItems;
 import freenet.clients.http.bookmark.BookmarkCategory;
@@ -264,7 +264,7 @@
 				HTMLNode infobox = contentNode.addChild(ctx.getPageMaker().getInfobox("infobox-success", l10n("insertSucceededTitle")));
 				content = ctx.getPageMaker().getContentNode(infobox);
 				content.addChild("#", l10n("finInsertSuccessWithKey", "key", finalKey.toString()));
-			} catch (InserterException e) {
+			} catch (InsertException e) {
 				HTMLNode infobox = ctx.getPageMaker().getInfobox("infobox-error", l10n("insertFailedTitle"));
 				content = ctx.getPageMaker().getContentNode(infobox);
 				content.addChild("#", l10n("insertFailedWithMessage", "message", e.getMessage()));
@@ -273,7 +273,7 @@
 					content.addChild("#", l10n("uriWouldHaveBeen", "uri", e.uri.toString()));
 				}
 				int mode = e.getMode();
-				if((mode == InserterException.FATAL_ERRORS_IN_BLOCKS) || (mode == InserterException.TOO_MANY_RETRIES_IN_BLOCKS)) {
+				if((mode == InsertException.FATAL_ERRORS_IN_BLOCKS) || (mode == InsertException.TOO_MANY_RETRIES_IN_BLOCKS)) {
 					content.addChild("br"); /* TODO */
 					content.addChild("#", l10n("splitfileErrorLabel"));
 					content.addChild("pre", e.errorCodes.toVerboseString());
@@ -316,7 +316,7 @@
 				L10n.addL10nSubstitution(content, "keyInsertedSuccessfullyWithKeyAndName",
 						new String[] { "link", "/link", "name" },
 						new String[] { "<a href=\"/"+u+"\">", "</a>", u });
-			} catch (InserterException e) {
+			} catch (InsertException e) {
 				HTMLNode infobox = contentNode.addChild(ctx.getPageMaker().getInfobox("infobox-error", l10n("insertFailedTitle")));
 				content = ctx.getPageMaker().getContentNode(infobox);
 				content.addChild("#", l10n("insertFailedWithMessage", "message", e.getMessage()));
@@ -325,7 +325,7 @@
 					content.addChild("#", l10n("uriWouldHaveBeen", "uri", e.uri.toString()));
 				}
 				int mode = e.getMode();
-				if((mode == InserterException.FATAL_ERRORS_IN_BLOCKS) || (mode == InserterException.TOO_MANY_RETRIES_IN_BLOCKS)) {
+				if((mode == InsertException.FATAL_ERRORS_IN_BLOCKS) || (mode == InsertException.TOO_MANY_RETRIES_IN_BLOCKS)) {
 					content.addChild("br"); /* TODO */
 					content.addChild("#", l10n("splitfileErrorLabel"));
 					content.addChild("pre", e.errorCodes.toVerboseString());

Modified: trunk/freenet/src/freenet/frost/message/FrostMessage.java
===================================================================
--- trunk/freenet/src/freenet/frost/message/FrostMessage.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/frost/message/FrostMessage.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -8,7 +8,7 @@
 import freenet.keys.FreenetURI;
 import freenet.support.io.ArrayBucket;
 import java.net.MalformedURLException;
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 
 
 public final class FrostMessage {
@@ -270,7 +270,7 @@
         return key;
     }
     
-    public final FreenetURI insertMessage(HighLevelSimpleClient client, int innitialIndex) throws InserterException, MalformedURLException
+    public final FreenetURI insertMessage(HighLevelSimpleClient client, int innitialIndex) throws InsertException, MalformedURLException
     {
     	boolean keepgoing;
     	FreenetURI key = null;
@@ -293,7 +293,7 @@
             try {
             	returnKey = client.insert(block, false, null); // I don't know what that 'false' is
             }
-            catch (InserterException e)
+            catch (InsertException e)
             {
             	System.err.println("FIN -> insert failed with the message" + e.getMessage());
         		if(moreTries--==0) throw e;

Modified: trunk/freenet/src/freenet/keys/FreenetURI.java
===================================================================
--- trunk/freenet/src/freenet/keys/FreenetURI.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/keys/FreenetURI.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -24,7 +24,7 @@
 import freenet.support.URLDecoder;
 import freenet.support.URLEncodedFormatException;
 import freenet.support.URLEncoder;
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 
 /**
  * Note that the metadata pairs below are not presently supported. They are supported
@@ -799,12 +799,12 @@
 				suggestedEdition);
 	}
 	
-	public void checkInsertURI() throws InserterException {
+	public void checkInsertURI() throws InsertException {
 		if(metaStr != null && metaStr.length > 0)
-			throw new InserterException(InserterException.META_STRINGS_NOT_SUPPORTED,this);
+			throw new InsertException(InsertException.META_STRINGS_NOT_SUPPORTED,this);
 	}
 	
-	public static void checkInsertURI(FreenetURI uri) throws InserterException { uri.checkInsertURI(); }
+	public static void checkInsertURI(FreenetURI uri) throws InsertException { uri.checkInsertURI(); }
 
 	public URI toRelativeURI() throws URISyntaxException {
 		// Single-argument constructor used because it preserves encoded /'es in path.

Modified: trunk/freenet/src/freenet/node/NodeARKInserter.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeARKInserter.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/node/NodeARKInserter.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -9,7 +9,7 @@
 import freenet.client.ClientMetadata;
 import freenet.client.FetchException;
 import freenet.client.FetchResult;
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 import freenet.client.async.BaseClientPutter;
 import freenet.client.async.ClientCallback;
 import freenet.client.async.ClientGetter;
@@ -163,7 +163,7 @@
 					}
 				}
 			}
-		} catch (InserterException e) {
+		} catch (InsertException e) {
 			onFailure(e, inserter);	
 		}
 	}
@@ -192,7 +192,7 @@
 			}
 	}
 
-	public void onFailure(InserterException e, BaseClientPutter state) {
+	public void onFailure(InsertException e, BaseClientPutter state) {
 		if(logMINOR) Logger.minor(this, "ARK insert failed: "+e);
 		synchronized(this) {
 			lastInsertedPeers = null;

Modified: trunk/freenet/src/freenet/node/NodeClientCore.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeClientCore.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/node/NodeClientCore.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -7,7 +7,7 @@
 import freenet.client.ArchiveManager;
 import freenet.client.HighLevelSimpleClient;
 import freenet.client.HighLevelSimpleClientImpl;
-import freenet.client.InserterContext;
+import freenet.client.InsertContext;
 import freenet.client.async.BackgroundBlockEncoder;
 import freenet.client.async.HealingQueue;
 import freenet.client.async.SimpleHealingQueue;
@@ -266,7 +266,7 @@
 		uskManager = new USKManager(this);
 		
 		healingQueue = new SimpleHealingQueue(requestStarters.chkPutScheduler,
-				new InserterContext(tempBucketFactory, tempBucketFactory, persistentTempBucketFactory, 
+				new InsertContext(tempBucketFactory, tempBucketFactory, persistentTempBucketFactory, 
 						random, 0, 2, 1, 0, 0, new SimpleEventProducer(), 
 						!Node.DONT_CACHE_LOCAL_REQUESTS, uskManager, backgroundBlockEncoder), RequestStarter.PREFETCH_PRIORITY_CLASS, 512 /* FIXME make configurable */);
 		

Modified: trunk/freenet/src/freenet/node/TextModeClientInterface.java
===================================================================
--- trunk/freenet/src/freenet/node/TextModeClientInterface.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/node/TextModeClientInterface.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -29,7 +29,7 @@
 import freenet.client.FetchResult;
 import freenet.client.HighLevelSimpleClient;
 import freenet.client.InsertBlock;
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 import freenet.client.events.EventDumper;
 import freenet.clients.http.filter.ContentFilter;
 import freenet.clients.http.filter.ContentFilter.FilterOutput;
@@ -455,12 +455,12 @@
             FreenetURI uri;
             try {
             	uri = client.insert(block, getCHKOnly, null);
-            } catch (InserterException e) {
+            } catch (InsertException e) {
                 outsb.append("Error: ").append(e.getMessage());
             	if(e.uri != null)
                     outsb.append("URI would have been: ").append(e.uri);
             	int mode = e.getMode();
-            	if((mode == InserterException.FATAL_ERRORS_IN_BLOCKS) || (mode == InserterException.TOO_MANY_RETRIES_IN_BLOCKS)) {
+            	if((mode == InsertException.FATAL_ERRORS_IN_BLOCKS) || (mode == InsertException.TOO_MANY_RETRIES_IN_BLOCKS)) {
                     outsb.append("Splitfile-specific error:\n").append(e.errorCodes.toVerboseString());
             	}
 		outsb.append("\r\n");
@@ -535,7 +535,7 @@
 	        	outsb.append("=======================================================");
                 outsb.append("URI: ").append(uri);
 	        	outsb.append("=======================================================");
-			} catch (InserterException e) {
+			} catch (InsertException e) {
                 outsb.append("Finished insert but: ").append(e.getMessage());
             	if(e.uri != null) {
             		uri = e.uri;
@@ -591,7 +591,7 @@
                 outsb.append("Upload rate: ").append(rate).append(" bytes / second\r\n");
             } catch (FileNotFoundException e1) {
                 outsb.append("File not found");
-            } catch (InserterException e) {
+            } catch (InsertException e) {
                 outsb.append("Finished insert but: ").append(e.getMessage());
             	if(e.uri != null) {
                     outsb.append("URI would have been: ").append(e.uri);
@@ -638,7 +638,7 @@
         	try {
 				FreenetURI result = client.insertRedirect(insert, target);
                 outsb.append("Successfully inserted to fetch URI: ").append(result);
-			} catch (InserterException e) {
+			} catch (InsertException e) {
                 outsb.append("Finished insert but: ").append(e.getMessage());
             	Logger.normal(this, "Error: "+e, e);
             	if(e.uri != null) {

Modified: trunk/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientGet.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/node/fcp/ClientGet.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -10,7 +10,7 @@
 import freenet.client.FetchContext;
 import freenet.client.FetchException;
 import freenet.client.FetchResult;
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 import freenet.client.async.BaseClientPutter;
 import freenet.client.async.ClientCallback;
 import freenet.client.async.ClientGetter;
@@ -454,7 +454,7 @@
 		// Ignore
 	}
 
-	public void onFailure(InserterException e, BaseClientPutter state) {
+	public void onFailure(InsertException e, BaseClientPutter state) {
 		// Ignore
 	}
 

Modified: trunk/freenet/src/freenet/node/fcp/ClientPut.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientPut.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/node/fcp/ClientPut.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -13,7 +13,7 @@
 import freenet.client.DefaultMIMETypes;
 import freenet.client.FetchException;
 import freenet.client.FetchResult;
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 import freenet.client.Metadata;
 import freenet.client.MetadataUnresolvedException;
 import freenet.client.async.ClientGetter;
@@ -125,7 +125,7 @@
 			} catch (MetadataUnresolvedException e) {
 				// Impossible
 				Logger.error(this, "Impossible: "+e, e);
-				onFailure(new InserterException(InserterException.INTERNAL_ERROR, "Impossible: "+e+" in ClientPut", null), null);
+				onFailure(new InsertException(InsertException.INTERNAL_ERROR, "Impossible: "+e+" in ClientPut", null), null);
 				this.data = null;
 				clientMetadata = cm;
 				putter = null;
@@ -199,7 +199,7 @@
 			} catch (MetadataUnresolvedException e) {
 				// Impossible
 				Logger.error(this, "Impossible: "+e, e);
-				onFailure(new InserterException(InserterException.INTERNAL_ERROR, "Impossible: "+e+" in ClientPut", null), null);
+				onFailure(new InsertException(InsertException.INTERNAL_ERROR, "Impossible: "+e+" in ClientPut", null), null);
 				this.data = null;
 				clientMetadata = cm;
 				putter = null;
@@ -318,7 +318,7 @@
 			} catch (MetadataUnresolvedException e) {
 				// Impossible
 				Logger.error(this, "Impossible: "+e, e);
-				onFailure(new InserterException(InserterException.INTERNAL_ERROR, "Impossible: "+e+" in ClientPut", null), null);
+				onFailure(new InsertException(InsertException.INTERNAL_ERROR, "Impossible: "+e+" in ClientPut", null), null);
 				this.data = null;
 				clientMetadata = cm;
 				origFilename = null;
@@ -359,7 +359,7 @@
 			synchronized(this) {
 				started = true;
 			}
-		} catch (InserterException e) {
+		} catch (InsertException e) {
 			synchronized(this) {
 				started = true;
 			}
@@ -368,7 +368,7 @@
 			synchronized(this) {
 				started = true;
 			}
-			onFailure(new InserterException(InserterException.INTERNAL_ERROR, t, null), null);
+			onFailure(new InsertException(InsertException.INTERNAL_ERROR, t, null), null);
 		}
 	}
 
@@ -471,7 +471,7 @@
 				}
 			}
 			return true;
-		} catch (InserterException e) {
+		} catch (InsertException e) {
 			onFailure(e, null);
 			return false;
 		}

Modified: trunk/freenet/src/freenet/node/fcp/ClientPutBase.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientPutBase.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/node/fcp/ClientPutBase.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -22,7 +22,7 @@
  */
 public abstract class ClientPutBase extends ClientRequest implements ClientCallback, ClientEventListener {
 
-	final InserterContext ctx;
+	final InsertContext ctx;
 	final boolean getCHKOnly;
 
 	// Verbosity bitmasks
@@ -34,7 +34,7 @@
 	/** Has the request succeeded? */
 	protected boolean succeeded;
 	/** If the request failed, how did it fail? PutFailedMessage is the most
-	 * convenient way to store this (InserterException has a stack trace!).
+	 * convenient way to store this (InsertException has a stack trace!).
 	 */
 	private PutFailedMessage putFailedMessage;
 	/** URI generated for the insert. */
@@ -56,7 +56,7 @@
 			boolean dontCompress, int maxRetries, boolean earlyEncode) {
 		super(uri, identifier, verbosity, handler, priorityClass, persistenceType, clientToken, global);
 		this.getCHKOnly = getCHKOnly;
-		ctx = new InserterContext(client.defaultInsertContext, new SimpleEventProducer(), persistenceType == ClientRequest.PERSIST_CONNECTION);
+		ctx = new InsertContext(client.defaultInsertContext, new SimpleEventProducer(), persistenceType == ClientRequest.PERSIST_CONNECTION);
 		ctx.dontCompress = dontCompress;
 		ctx.eventProducer.addEventListener(this);
 		ctx.maxInsertRetries = maxRetries;
@@ -68,7 +68,7 @@
 			boolean getCHKOnly, boolean dontCompress, int maxRetries, boolean earlyEncode) {
 		super(uri, identifier, verbosity, handler, client, priorityClass, persistenceType, clientToken, global);
 		this.getCHKOnly = getCHKOnly;
-		ctx = new InserterContext(client.defaultInsertContext, new SimpleEventProducer(), persistenceType == ClientRequest.PERSIST_CONNECTION);
+		ctx = new InsertContext(client.defaultInsertContext, new SimpleEventProducer(), persistenceType == ClientRequest.PERSIST_CONNECTION);
 		ctx.dontCompress = dontCompress;
 		ctx.eventProducer.addEventListener(this);
 		ctx.maxInsertRetries = maxRetries;
@@ -84,7 +84,7 @@
 		finished = Fields.stringToBool(fs.get("Finished"), false);
 		//finished = false;
 		succeeded = Fields.stringToBool(fs.get("Succeeded"), false);
-		ctx = new InserterContext(client.defaultInsertContext, new SimpleEventProducer());
+		ctx = new InsertContext(client.defaultInsertContext, new SimpleEventProducer());
 		ctx.dontCompress = dontCompress;
 		ctx.eventProducer.addEventListener(this);
 		ctx.maxInsertRetries = maxRetries;
@@ -116,7 +116,7 @@
 			client.server.forceStorePersistentRequests();
 	}
 
-	public void onFailure(InserterException e, BaseClientPutter state) {
+	public void onFailure(InsertException e, BaseClientPutter state) {
         if(finished) return;
 		synchronized(this) {
 			finished = true;
@@ -143,7 +143,7 @@
         if( !finished ) {
             synchronized(this) {
                 finished = true;
-                InserterException cancelled = new InserterException(InserterException.CANCELLED);
+                InsertException cancelled = new InsertException(InsertException.CANCELLED);
                 putFailedMessage = new PutFailedMessage(cancelled, identifier, global);
             }
             trySendFinalMessage(null);

Modified: trunk/freenet/src/freenet/node/fcp/ClientPutDir.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientPutDir.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/node/fcp/ClientPutDir.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -11,7 +11,7 @@
 
 import freenet.client.FetchException;
 import freenet.client.FetchResult;
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 import freenet.client.async.ClientGetter;
 import freenet.client.async.ClientRequester;
 import freenet.client.async.ManifestElement;
@@ -65,7 +65,7 @@
 		try {
 			p = new SimpleManifestPutter(this, client.core.requestStarters.chkPutScheduler, client.core.requestStarters.sskPutScheduler,
 					manifestElements, priorityClass, uri, defaultName, ctx, getCHKOnly, client.lowLevelClient, earlyEncode);
-		} catch (InserterException e) {
+		} catch (InsertException e) {
 			onFailure(e, null);
 			p = null;
 		}
@@ -137,7 +137,7 @@
 			if(!finished)
 				p = new SimpleManifestPutter(this, client.core.requestStarters.chkPutScheduler, client.core.requestStarters.sskPutScheduler,
 						manifestElements, priorityClass, uri, defaultName, ctx, getCHKOnly, client, earlyEncode);
-		} catch (InserterException e) {
+		} catch (InsertException e) {
 			onFailure(e, null);
 			p = null;
 		}
@@ -162,7 +162,7 @@
 				FCPMessage msg = persistentTagMessage();
 				client.queueClientRequestMessage(msg, 0);
 			}
-		} catch (InserterException e) {
+		} catch (InsertException e) {
 			started = true;
 			onFailure(e, null);
 		}

Modified: trunk/freenet/src/freenet/node/fcp/FCPClient.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPClient.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/node/fcp/FCPClient.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -8,7 +8,7 @@
 
 import freenet.client.FetchContext;
 import freenet.client.HighLevelSimpleClient;
-import freenet.client.InserterContext;
+import freenet.client.InsertContext;
 import freenet.node.NodeClientCore;
 import freenet.support.LRUQueue;
 import freenet.support.Logger;
@@ -64,7 +64,7 @@
 	/** Client (one FCPClient = one HighLevelSimpleClient = one round-robin slot) */
 	private final HighLevelSimpleClient client;
 	public final FetchContext defaultFetchContext;
-	public final InserterContext defaultInsertContext;
+	public final InsertContext defaultInsertContext;
 	public final NodeClientCore core;
 	/** Are we the global queue? */
 	public final boolean isGlobalQueue;

Modified: trunk/freenet/src/freenet/node/fcp/FCPServer.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPServer.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/node/fcp/FCPServer.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -27,7 +27,7 @@
 import freenet.client.DefaultMIMETypes;
 import freenet.client.FetchContext;
 import freenet.client.HighLevelSimpleClient;
-import freenet.client.InserterContext;
+import freenet.client.InsertContext;
 import freenet.config.Config;
 import freenet.config.InvalidConfigValueException;
 import freenet.config.SubConfig;
@@ -73,7 +73,7 @@
 	private boolean haveLoadedPersistentRequests;
 	private long persistenceInterval;
 	final FetchContext defaultFetchContext;
-	public InserterContext defaultInsertContext;
+	public InsertContext defaultInsertContext;
 	public static final int QUEUE_MAX_RETRIES = -1;
 	public static final long QUEUE_MAX_DATA_SIZE = Long.MAX_VALUE;
 	private boolean canStartPersister = false;

Modified: trunk/freenet/src/freenet/node/fcp/GetFailedMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/GetFailedMessage.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/node/fcp/GetFailedMessage.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -96,7 +96,7 @@
 	/**
 	 * Write to a SimpleFieldSet for storage or transmission.
 	 * @param verbose If true, include fields which derive directly from static
-	 * stuff on InserterException (and therefore can be omitted if talking to self
+	 * stuff on InsertException (and therefore can be omitted if talking to self
 	 * or another node).
 	 */
 	public SimpleFieldSet getFieldSet(boolean verbose) {

Modified: trunk/freenet/src/freenet/node/fcp/PutFailedMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/PutFailedMessage.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/node/fcp/PutFailedMessage.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -6,7 +6,7 @@
 import java.net.MalformedURLException;
 
 import freenet.client.FailureCodeTracker;
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 import freenet.keys.FreenetURI;
 import freenet.node.Node;
 import freenet.support.Fields;
@@ -24,16 +24,16 @@
 	final boolean global;
 	final boolean isFatal;
 	
-	public PutFailedMessage(InserterException e, String identifier, boolean global) {
+	public PutFailedMessage(InsertException e, String identifier, boolean global) {
 		this.code = e.getMode();
-		this.codeDescription = InserterException.getMessage(code);
-		this.shortCodeDescription = InserterException.getShortMessage(code);
+		this.codeDescription = InsertException.getMessage(code);
+		this.shortCodeDescription = InsertException.getShortMessage(code);
 		this.extraDescription = e.extra;
 		this.tracker = e.errorCodes;
 		this.expectedURI = e.uri;
 		this.identifier = identifier;
 		this.global = global;
-		this.isFatal = InserterException.isFatal(code);
+		this.isFatal = InsertException.isFatal(code);
 	}
 
 	/**
@@ -55,9 +55,9 @@
 			isFatal = Fields.stringToBool(fs.get("Fatal"), false);
 			shortCodeDescription = fs.get("ShortCodeDescription");
 		} else {
-			codeDescription = InserterException.getMessage(code);
-			isFatal = InserterException.isFatal(code);
-			shortCodeDescription = InserterException.getShortMessage(code);
+			codeDescription = InsertException.getMessage(code);
+			isFatal = InsertException.isFatal(code);
+			shortCodeDescription = InsertException.getShortMessage(code);
 		}
 		
 		extraDescription = fs.get("ExtraDescription");

Modified: trunk/freenet/src/freenet/node/updater/NodeUpdater.java
===================================================================
--- trunk/freenet/src/freenet/node/updater/NodeUpdater.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/node/updater/NodeUpdater.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -8,7 +8,7 @@
 import freenet.client.FetchException;
 import freenet.client.FetchResult;
 import freenet.client.FetchContext;
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 import freenet.client.async.BaseClientPutter;
 import freenet.client.async.ClientCallback;
 import freenet.client.async.ClientGetter;
@@ -227,7 +227,7 @@
 		// Impossible
 	}
 
-	public void onFailure(InserterException e, BaseClientPutter state) {
+	public void onFailure(InsertException e, BaseClientPutter state) {
 		// Impossible
 	}
 

Modified: trunk/freenet/src/freenet/node/updater/RevocationChecker.java
===================================================================
--- trunk/freenet/src/freenet/node/updater/RevocationChecker.java	2007-05-04 19:30:30 UTC (rev 13150)
+++ trunk/freenet/src/freenet/node/updater/RevocationChecker.java	2007-05-04 19:31:38 UTC (rev 13151)
@@ -3,7 +3,7 @@
 import freenet.client.FetchException;
 import freenet.client.FetchResult;
 import freenet.client.FetchContext;
-import freenet.client.InserterException;
+import freenet.client.InsertException;
 import freenet.client.async.BaseClientPutter;
 import freenet.client.async.ClientCallback;
 import freenet.client.async.ClientGetter;
@@ -168,7 +168,7 @@
 		
 	}
 
-	public void onFailure(InserterException e, BaseClientPutter state) {
+	public void onFailure(InsertException e, BaseClientPutter state) {
 		// TODO Auto-generated method stub
 		
 	}




More information about the cvs mailing list