Author: j16sdiz
Date: 2008-04-11 07:17:09 +0000 (Fri, 11 Apr 2008)
New Revision: 19160

Modified:
   trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
Log:
findbugs: synchronization and no sleep when lock held
fix a harmless warning from findbugs.


Modified: trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
===================================================================
--- trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2008-04-10 
22:43:41 UTC (rev 19159)
+++ trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2008-04-11 
07:17:09 UTC (rev 19160)
@@ -1591,19 +1591,26 @@
                        //                      happen is that we miss the last 
few store()'s and get an exception.
                        logMINOR = Logger.shouldLog(Logger.MINOR, this);
                        if(logMINOR) Logger.minor(this, "Closing database 
"+this);
-                       closed = true;
+                       
+                       synchronized (this) {
+                               closed = true;
+                       }
+
+                       // Give all threads some time to complete
+                       if(sleep)
+                               Thread.sleep(5000);
+                       
                        if(reallyClosed) {
                                Logger.error(this, "Already closed "+this);
                                return;
                        }
+                       
                        synchronized(closeLock) {
                                if(reallyClosed) {
                                        Logger.error(this, "Already closed 
"+this);
                                        return;
                                }
-                               // Give all threads some time to complete
-                               if(sleep)
-                                       Thread.sleep(5000);
+                               
                                try {
                                        if(storeRAF != null)
                                                storeRAF.close();


Reply via email to