Author: toad
Date: 2008-06-25 17:32:55 +0000 (Wed, 25 Jun 2008)
New Revision: 20699
Modified:
branches/db4o/freenet/src/freenet/clients/http/QueueToadlet.java
branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java
branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java
branches/db4o/freenet/src/freenet/node/fcp/RequestCompletionCallback.java
Log:
Activation issues with QueueToadlet notifications.
Modified: branches/db4o/freenet/src/freenet/clients/http/QueueToadlet.java
===================================================================
--- branches/db4o/freenet/src/freenet/clients/http/QueueToadlet.java
2008-06-25 17:24:37 UTC (rev 20698)
+++ branches/db4o/freenet/src/freenet/clients/http/QueueToadlet.java
2008-06-25 17:32:55 UTC (rev 20699)
@@ -1096,15 +1096,15 @@
private final HashMap alertsByIdentifier = new HashMap();
- public void notifyFailure(ClientRequest req) {
+ public void notifyFailure(ClientRequest req, ObjectContainer container)
{
// FIXME do something???
}
- public void notifySuccess(ClientRequest req) {
+ public void notifySuccess(ClientRequest req, ObjectContainer container)
{
synchronized(completedRequestIdentifiers) {
completedRequestIdentifiers.add(req.getIdentifier());
}
- registerAlert(req);
+ registerAlert(req, container); // should be safe here
saveCompletedIdentifiersOffThread();
}
@@ -1137,7 +1137,7 @@
}
continue;
}
- registerAlert(req);
+ registerAlert(req, container);
}
}
@@ -1228,7 +1228,7 @@
}
}
- private void registerAlert(ClientRequest req) {
+ private void registerAlert(ClientRequest req, ObjectContainer
container) {
final String identifier = req.getIdentifier();
boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);
if(logMINOR)
@@ -1240,6 +1240,8 @@
}
if(req instanceof ClientGet) {
FreenetURI uri = ((ClientGet)req).getURI();
+ if(req.isPersistentForever() && uri != null)
+ container.activate(uri, 5);
long size = ((ClientGet)req).getDataSize();
String name = uri.getPreferredFilename();
String title = l10n("downloadSucceededTitle",
"filename", name);
@@ -1268,6 +1270,8 @@
}
} else if(req instanceof ClientPut) {
FreenetURI uri = ((ClientPut)req).getFinalURI();
+ if(req.isPersistentForever() && uri != null)
+ container.activate(uri, 5);
long size = ((ClientPut)req).getDataSize();
if(uri == null) {
Logger.error(this, "uri is null for "+req+" for
"+identifier);
@@ -1334,7 +1338,7 @@
return L10n.getString("QueueToadlet."+key, pattern, value);
}
- public void onRemove(ClientRequest req) {
+ public void onRemove(ClientRequest req, ObjectContainer container) {
String identifier = req.getIdentifier();
synchronized(completedRequestIdentifiers) {
completedRequestIdentifiers.remove(identifier);
Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java 2008-06-25
17:24:37 UTC (rev 20698)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java 2008-06-25
17:32:55 UTC (rev 20699)
@@ -413,7 +413,7 @@
container.set(this);
}
finish(container);
- client.notifySuccess(this);
+ client.notifySuccess(this, container);
}
private void trySendDataFoundOrGetFailed(FCPConnectionOutputHandler
handler, ObjectContainer container) {
@@ -501,7 +501,7 @@
if(persistenceType == PERSIST_FOREVER)
container.set(this);
finish(container);
- client.notifyFailure(this);
+ client.notifyFailure(this, container);
}
public void onSuccess(BaseClientPutter state, ObjectContainer
container) {
Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java
2008-06-25 17:24:37 UTC (rev 20698)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java
2008-06-25 17:32:55 UTC (rev 20699)
@@ -147,7 +147,7 @@
freeData(container);
finish(container);
trySendFinalMessage(null, container);
- client.notifySuccess(this);
+ client.notifySuccess(this, container);
}
public void onFailure(InsertException e, BaseClientPutter state,
ObjectContainer container) {
@@ -159,7 +159,7 @@
freeData(container);
finish(container);
trySendFinalMessage(null, container);
- client.notifyFailure(this);
+ client.notifyFailure(this, container);
}
public void onGeneratedURI(FreenetURI uri, BaseClientPutter state,
ObjectContainer container) {
Modified: branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java 2008-06-25
17:24:37 UTC (rev 20698)
+++ branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java 2008-06-25
17:32:55 UTC (rev 20699)
@@ -199,7 +199,7 @@
req.cancel(container);
}
if(completionCallback != null)
- completionCallback.onRemove(req);
+ completionCallback.onRemove(req, container);
return true;
}
@@ -336,20 +336,20 @@
/**
* Callback called when a request succeeds.
*/
- public void notifySuccess(ClientRequest req) {
+ public void notifySuccess(ClientRequest req, ObjectContainer container)
{
assert(req.persistenceType == persistenceType);
if(completionCallback != null)
- completionCallback.notifySuccess(req);
+ completionCallback.notifySuccess(req, container);
}
/**
* Callback called when a request fails
* @param get
*/
- public void notifyFailure(ClientRequest req) {
+ public void notifyFailure(ClientRequest req, ObjectContainer container)
{
assert(req.persistenceType == persistenceType);
if(completionCallback != null)
- completionCallback.notifyFailure(req);
+ completionCallback.notifyFailure(req, container);
}
public synchronized RequestCompletionCallback
setRequestCompletionCallback(RequestCompletionCallback cb) {
Modified:
branches/db4o/freenet/src/freenet/node/fcp/RequestCompletionCallback.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/RequestCompletionCallback.java
2008-06-25 17:24:37 UTC (rev 20698)
+++ branches/db4o/freenet/src/freenet/node/fcp/RequestCompletionCallback.java
2008-06-25 17:32:55 UTC (rev 20699)
@@ -1,20 +1,22 @@
package freenet.node.fcp;
+import com.db4o.ObjectContainer;
+
public interface RequestCompletionCallback {
/**
* Callback called when a request succeeds.
*/
- public void notifySuccess(ClientRequest req);
+ public void notifySuccess(ClientRequest req, ObjectContainer container);
/**
* Callback called when a request fails
*/
- public void notifyFailure(ClientRequest req);
+ public void notifyFailure(ClientRequest req, ObjectContainer container);
/**
* Callback when a request is removed
*/
- public void onRemove(ClientRequest req);
+ public void onRemove(ClientRequest req, ObjectContainer container);
}