Author: nextgens
Date: 2006-05-21 07:02:37 +0000 (Sun, 21 May 2006)
New Revision: 8813
Modified:
trunk/freenet/src/freenet/node/ARKFetcher.java
Log:
maybe fix a synchronization problem in ARKFetcher
Modified: trunk/freenet/src/freenet/node/ARKFetcher.java
===================================================================
--- trunk/freenet/src/freenet/node/ARKFetcher.java 2006-05-21 04:27:09 UTC
(rev 8812)
+++ trunk/freenet/src/freenet/node/ARKFetcher.java 2006-05-21 07:02:37 UTC
(rev 8813)
@@ -96,8 +96,10 @@
// Fetcher context specifies an upper bound on size.
backoff = MIN_BACKOFF;
if(isFetching) {
- node.removeARKFetcher(identity,this);
- isFetching = false;
+ synchronized(this){
+ node.removeARKFetcher(identity,this);
+ isFetching = false;
+ }
}
ArrayBucket bucket = (ArrayBucket) result.asBucket();
byte[] data = bucket.toByteArray();
@@ -121,8 +123,10 @@
public void onFailure(FetchException e, ClientGetter state) {
Logger.minor(this, "Failed to fetch ARK for "+peer+" : "+e, e);
if(isFetching) {
- node.removeARKFetcher(identity,this);
- isFetching = false;
+ synchronized(this){
+ node.removeARKFetcher(identity,this);
+ isFetching = false;
+ }
}
// If it's a redirect, follow the redirect and update the ARK.
// If it's any other error, wait a while then retry.