Author: toad
Date: 2009-04-09 00:10:10 +0000 (Thu, 09 Apr 2009)
New Revision: 26672
Modified:
trunk/freenet/src/freenet/clients/http/QueueToadlet.java
trunk/freenet/src/freenet/node/fcp/FCPServer.java
Log:
Pass in container, run it inline if possible.
Modified: trunk/freenet/src/freenet/clients/http/QueueToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/QueueToadlet.java 2009-04-09 00:09:28 UTC (rev 26671)
+++ trunk/freenet/src/freenet/clients/http/QueueToadlet.java 2009-04-09 00:10:10 UTC (rev 26672)
@@ -315,7 +315,7 @@
clientPut = new ClientPut(fcp.getGlobalForeverClient(), insertURI, identifier, Integer.MAX_VALUE, RequestStarter.BULK_SPLITFILE_PRIORITY_CLASS, ClientRequest.PERSIST_FOREVER, null, false, !compress, -1, ClientPutMessage.UPLOAD_FROM_DIRECT, null, file.getContentType(), copiedBucket, null, fnam, false, fcp, container);
if(clientPut != null)
try {
- fcp.startBlocking(clientPut);
+ fcp.startBlocking(clientPut, container, context);
} catch (IdentifierCollisionException e) {
Logger.error(this, "Cannot put same file twice in same millisecond");
writePermanentRedirect(ctx, "Done", "/queue/");
@@ -400,7 +400,7 @@
if(Logger.shouldLog(Logger.MINOR, this)) Logger.minor(this, "Started global request to insert "+file+" to CHK@ as "+identifier);
if(clientPut != null)
try {
- fcp.startBlocking(clientPut);
+ fcp.startBlocking(clientPut, container, context);
} catch (IdentifierCollisionException e) {
Logger.error(this, "Cannot put same file twice in same millisecond");
writePermanentRedirect(ctx, "Done", "/queue/");
@@ -478,7 +478,7 @@
if(logMINOR) Logger.minor(this, "Started global request to insert dir "+file+" to "+furi+" as "+identifier);
if(clientPutDir != null)
try {
- fcp.startBlocking(clientPutDir);
+ fcp.startBlocking(clientPutDir, container, context);
} catch (IdentifierCollisionException e) {
Logger.error(this, "Cannot put same file twice in same millisecond");
writePermanentRedirect(ctx, "Done", "/queue/");
Modified: trunk/freenet/src/freenet/node/fcp/FCPServer.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPServer.java 2009-04-09 00:09:28 UTC (rev 26671)
+++ trunk/freenet/src/freenet/node/fcp/FCPServer.java 2009-04-09 00:10:10 UTC (rev 26672)
@@ -966,7 +966,7 @@
Logger.error(this, "Replacing request completion callback "+cb, new Exception("error"));
}
- public void startBlocking(final ClientRequest req) throws IdentifierCollisionException {
+ public void startBlocking(final ClientRequest req, ObjectContainer container, ClientContext context) throws IdentifierCollisionException {
if(req.persistenceType == ClientRequest.PERSIST_REBOOT) {
req.start(null, core.clientContext);
} else {
@@ -975,6 +975,21 @@
IdentifierCollisionException collided;
}
final OutputWrapper ow = new OutputWrapper();
+ if(container != null) {
+ // Don't activate, it may not be stored yet.
+ try {
+ req.register(container, false, false);
+ req.start(container, context);
+ } catch (IdentifierCollisionException e) {
+ ow.collided = e;
+ } finally {
+ synchronized(ow) {
+ ow.done = true;
+ ow.notifyAll();
+ }
+ }
+ container.deactivate(req, 1);
+ } else {
core.clientContext.jobRunner.queue(new DBJob() {
public void run(ObjectContainer container, ClientContext context) {
@@ -1011,6 +1026,7 @@
}
}
}
+ }
}
public boolean restartBlocking(final String identifier) {
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.