Author: toad
Date: 2007-02-14 19:11:53 +0000 (Wed, 14 Feb 2007)
New Revision: 11787
Modified:
trunk/freenet/src/freenet/client/async/ClientGetter.java
trunk/freenet/src/freenet/client/async/ClientPutter.java
Log:
Don't start if already started.
Modified: trunk/freenet/src/freenet/client/async/ClientGetter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientGetter.java 2007-02-14
19:07:23 UTC (rev 11786)
+++ trunk/freenet/src/freenet/client/async/ClientGetter.java 2007-02-14
19:11:53 UTC (rev 11787)
@@ -61,6 +61,8 @@
}
public boolean start(boolean restart) throws FetchException {
+ if(Logger.shouldLog(Logger.MINOR, this))
+ Logger.minor(this, "Starting "+this);
try {
// FIXME synchronization is probably unnecessary.
// But we DEFINITELY do not want to synchronize while
calling currentState.schedule(),
@@ -70,6 +72,7 @@
if(!restart) return false;
currentState = null;
cancelled = false;
+ finished = false;
}
// FIXME Possibility for deadlock?
currentState = SingleFileFetcher.create(this,
this, new ClientMetadata(),
@@ -77,7 +80,7 @@
returnBucket, true);
}
if(cancelled) cancel();
- if(currentState != null)
+ if(currentState != null && !finished)
currentState.schedule();
if(cancelled) cancel();
} catch (MalformedURLException e) {
Modified: trunk/freenet/src/freenet/client/async/ClientPutter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientPutter.java 2007-02-14
19:07:23 UTC (rev 11786)
+++ trunk/freenet/src/freenet/client/async/ClientPutter.java 2007-02-14
19:11:53 UTC (rev 11787)
@@ -82,6 +82,7 @@
synchronized(this) {
if(restart) {
if(currentState != null && !finished)
return false;
+ finished = false;
}
if(startedStarting) return false;
startedStarting = true;