Author: toad
Date: 2009-04-10 14:52:07 +0000 (Fri, 10 Apr 2009)
New Revision: 26711
Modified:
trunk/freenet/src/freenet/client/async/ClientGetter.java
Log:
If cancelling the client state doesn't call onFailure, we need to do it.
Modified: trunk/freenet/src/freenet/client/async/ClientGetter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientGetter.java 2009-04-10 14:40:38 UTC (rev 26710)
+++ trunk/freenet/src/freenet/client/async/ClientGetter.java 2009-04-10 14:52:07 UTC (rev 26711)
@@ -259,6 +259,10 @@
}
}
+ /**
+ * Cancel the request. This must result in onFailure() being called in order to
+ * send the client a cancel FetchException, and to removeFrom() the state.
+ */
public void cancel(ObjectContainer container, ClientContext context) {
if(logMINOR) Logger.minor(this, "Cancelling "+this, new Exception("debug"));
ClientGetState s;
@@ -281,6 +285,13 @@
} else {
if(logMINOR) Logger.minor(this, "Nothing to cancel");
}
+ ClientGetState state;
+ synchronized(this) {
+ state = currentState;
+ }
+ if(state == null) return;
+ Logger.error(this, "Cancelling "+currentState+" did not call onFailure(), so did not removeFrom() or call callback");
+ this.onFailure(new FetchException(FetchException.CANCELLED), state, container, context);
}
@Override
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.