aboutsummaryrefslogtreecommitdiffstats
path: root/archiva-modules/archiva-base/archiva-filelock
diff options
context:
space:
mode:
Diffstat (limited to 'archiva-modules/archiva-base/archiva-filelock')
-rw-r--r--archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/DefaultFileLockManager.java26
-rw-r--r--archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/Lock.java4
2 files changed, 24 insertions, 6 deletions
diff --git a/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/DefaultFileLockManager.java b/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/DefaultFileLockManager.java
index e97d3e141..db26076b9 100644
--- a/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/DefaultFileLockManager.java
+++ b/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/DefaultFileLockManager.java
@@ -27,6 +27,7 @@ import org.springframework.stereotype.Service;
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;
diff --git a/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/Lock.java b/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/Lock.java
index a05d7d2c5..0922a7495 100644
--- a/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/Lock.java
+++ b/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/Lock.java
@@ -144,6 +144,10 @@ public class Lock
}
+ protected RandomAccessFile getRandomAccessFile()
+ {
+ return randomAccessFile;
+ }
private void closeQuietly( Closeable closeable )
{