Author: nextgens
Date: 2006-07-09 17:44:36 +0000 (Sun, 09 Jul 2006)
New Revision: 9524

Modified:
   trunk/freenet/src/freenet/node/ARKFetchManager.java
Log:
fix a potential synchronization problem on ARKFetchManager

Modified: trunk/freenet/src/freenet/node/ARKFetchManager.java
===================================================================
--- trunk/freenet/src/freenet/node/ARKFetchManager.java 2006-07-09 16:25:51 UTC 
(rev 9523)
+++ trunk/freenet/src/freenet/node/ARKFetchManager.java 2006-07-09 17:44:36 UTC 
(rev 9524)
@@ -16,7 +16,7 @@
        final Node node;

        /** All the ARKFetchers who want to fetch */
-       private LinkedList readyARKFetchers = new LinkedList();
+       private final LinkedList readyARKFetchers = new LinkedList();

        /**
         * Create a ARKFetchManager
@@ -28,14 +28,13 @@
                this.node = node;
        }

-       public void addReadyARKFetcher(ARKFetcher arkFetcher) {
-               synchronized(readyARKFetchers) {
+       public synchronized void addReadyARKFetcher(ARKFetcher arkFetcher) {
                        if(hasReadyARKFetcher(arkFetcher)) {
                                Logger.error(this, arkFetcher.peer.getPeer()+" 
already in readyARKFetchers");
                                return;
                        }
                        readyARKFetchers.addLast(arkFetcher);
-               }
+               
        }

        public boolean hasReadyARKFetcher(ARKFetcher arkFetcher) {
@@ -48,8 +47,10 @@
        }

        public boolean hasReadyARKFetchers() {
-               if(readyARKFetchers.size() > 0) {
-                       return true;
+               synchronized (readyARKFetchers) {
+                       if(readyARKFetchers.size() > 0) {
+                               return true;
+                       }       
                }
                return false;
        }


Reply via email to