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;


Reply via email to