You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2013/12/16 07:53:10 UTC

svn commit: r1551121 - in /archiva/trunk/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock: DefaultFileLockManager.java Lock.java

Author: olamy
Date: Mon Dec 16 06:53:09 2013
New Revision: 1551121

URL: http://svn.apache.org/r1551121
Log:
prevent possible file limit issue

Modified:
    archiva/trunk/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/DefaultFileLockManager.java
    archiva/trunk/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/Lock.java

Modified: archiva/trunk/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/DefaultFileLockManager.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/DefaultFileLockManager.java?rev=1551121&r1=1551120&r2=1551121&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/DefaultFileLockManager.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/DefaultFileLockManager.java Mon Dec 16 06:53:09 2013
@@ -27,6 +27,7 @@ import org.springframework.stereotype.Se
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.io.RandomAccessFile;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
@@ -91,6 +92,12 @@ public class DefaultFileLockManager
                 if ( current != null )
                 {
                     log.debug( "read lock file exist continue wait" );
+                    // close RandomAccessFile!!!
+                    RandomAccessFile raf =  lock.getRandomAccessFile();
+                    if (raf != null)
+                    {
+                        raf.close();
+                    }
                     continue;
                 }
 
@@ -168,14 +175,21 @@ public class DefaultFileLockManager
 
                 Lock current = lockFiles.get( file );
 
-                if ( current != null )
-                {
-                    log.debug( "write lock file exist continue wait" );
-                    continue;
-                }
-
                 try
                 {
+
+                    if ( current != null )
+                    {
+                        log.debug( "write lock file exist continue wait" );
+                        // close RandomAccessFile!!!
+                        RandomAccessFile raf =  lock.getRandomAccessFile();
+                        if (raf != null)
+                        {
+                            raf.close();
+                        }
+                        continue;
+                    }
+
                     createNewFileQuietly( file );
                     lock.openLock( true, timeout > 0 );
                     acquired = true;

Modified: archiva/trunk/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/Lock.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/Lock.java?rev=1551121&r1=1551120&r2=1551121&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/Lock.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/Lock.java Mon Dec 16 06:53:09 2013
@@ -144,6 +144,10 @@ public class Lock
 
     }
 
+    protected RandomAccessFile getRandomAccessFile()
+    {
+        return randomAccessFile;
+    }
 
     private void closeQuietly( Closeable closeable )
     {