[freenet-cvs] r11680 - trunk/freenet/src/freenet/node/fcp
bback at freenetproject.org
bback at freenetproject.org
Tue Feb 6 08:44:51 UTC 2007
Author: bback
Date: 2007-02-06 08:44:50 +0000 (Tue, 06 Feb 2007)
New Revision: 11680
Modified:
trunk/freenet/src/freenet/node/fcp/ClientGet.java
trunk/freenet/src/freenet/node/fcp/ClientPutBase.java
trunk/freenet/src/freenet/node/fcp/ClientRequest.java
Log:
fixes for PersistentRequestRemoved
Modified: trunk/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientGet.java 2007-02-05 11:52:15 UTC (rev 11679)
+++ trunk/freenet/src/freenet/node/fcp/ClientGet.java 2007-02-06 08:44:50 UTC (rev 11680)
@@ -360,7 +360,6 @@
}
private void trySendDataFoundOrGetFailed(FCPConnectionOutputHandler handler) {
-
FCPMessage msg;
// Don't need to lock. succeeded is only ever set, never unset.
@@ -452,7 +451,26 @@
public void onGeneratedURI(FreenetURI uri, BaseClientPutter state) {
// Ignore
}
+
+ public void requestWasRemoved() {
+ // if request is still running, send a GetFailed with code=cancelled
+ if( !finished ) {
+ synchronized(this) {
+ succeeded = false;
+ finished = true;
+ FetchException cancelled = new FetchException(FetchException.CANCELLED);
+ getFailedMessage = new GetFailedMessage(cancelled, identifier, global);
+ }
+ trySendDataFoundOrGetFailed(null);
+ }
+ // notify client that request was removed
+ FCPMessage msg = new PersistentRequestRemovedMessage(getIdentifier(), global);
+ client.queueClientRequestMessage(msg, 0);
+ freeData();
+ finish();
+ }
+
public void receive(ClientEvent ce) {
// Don't need to lock, verbosity is final and finished is never unset.
if(finished) return;
Modified: trunk/freenet/src/freenet/node/fcp/ClientPutBase.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientPutBase.java 2007-02-05 11:52:15 UTC (rev 11679)
+++ trunk/freenet/src/freenet/node/fcp/ClientPutBase.java 2007-02-06 08:44:50 UTC (rev 11680)
@@ -2,8 +2,7 @@
import java.net.MalformedURLException;
-import freenet.client.InserterContext;
-import freenet.client.InserterException;
+import freenet.client.*;
import freenet.client.async.BaseClientPutter;
import freenet.client.async.ClientCallback;
import freenet.client.events.ClientEvent;
@@ -134,7 +133,25 @@
}
trySendGeneratedURIMessage(null);
}
+
+ public void requestWasRemoved() {
+ // if request is still running, send a PutFailed with code=cancelled
+ if( !finished ) {
+ synchronized(this) {
+ finished = true;
+ InserterException cancelled = new InserterException(InserterException.CANCELLED);
+ putFailedMessage = new PutFailedMessage(cancelled, identifier, global);
+ }
+ trySendFinalMessage(null);
+ }
+ // notify client that request was removed
+ FCPMessage msg = new PersistentRequestRemovedMessage(getIdentifier(), global);
+ client.queueClientRequestMessage(msg, 0);
+ freeData();
+ finish();
+ }
+
public void receive(ClientEvent ce) {
if(finished) return;
if(ce instanceof SplitfileProgressEvent) {
Modified: trunk/freenet/src/freenet/node/fcp/ClientRequest.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientRequest.java 2007-02-05 11:52:15 UTC (rev 11679)
+++ trunk/freenet/src/freenet/node/fcp/ClientRequest.java 2007-02-06 08:44:50 UTC (rev 11680)
@@ -304,15 +304,11 @@
/**
* Called after a RemovePersistentRequest. Send a PersistentRequestRemoved to the clients.
*/
- public void requestWasRemoved() {
- FCPMessage msg = new PersistentRequestRemovedMessage(getIdentifier(), global);
- client.queueClientRequestMessage(msg, 0);
- }
-
+ public abstract void requestWasRemoved();
+
/** Utility method for storing details of a possibly encrypted bucket. */
protected void bucketToFS(SimpleFieldSet fs, String name, boolean includeSize, Bucket data) {
SerializableToFieldSetBucket bucket = (SerializableToFieldSetBucket) data;
fs.put(name, bucket.toFieldSet());
}
-
}
More information about the cvs
mailing list