diff options
author | Martin Stockhammer <martin_s@apache.org> | 2016-10-27 17:36:27 +0200 |
---|---|---|
committer | Martin Stockhammer <martin_s@apache.org> | 2016-10-27 17:44:10 +0200 |
commit | 5780110b79b9a794c420873ffb0dc447218fbf7b (patch) | |
tree | 1c5607a5d46699348bf9589b7cb49ce88e36f16e /archiva-modules/archiva-base/archiva-filelock | |
parent | d380bc6779aeefb80b74923d5ffa2e0c50994709 (diff) | |
download | archiva-5780110b79b9a794c420873ffb0dc447218fbf7b.tar.gz archiva-5780110b79b9a794c420873ffb0dc447218fbf7b.zip |
Reverting locking modifications
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.java | 39 |
1 files changed, 7 insertions, 32 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 258366aa9..ee4fb35be 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 @@ -31,7 +31,6 @@ import java.io.RandomAccessFile; import java.nio.channels.ClosedChannelException; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -import java.util.concurrent.locks.ReentrantReadWriteLock; /** * @author Olivier Lamy @@ -52,6 +51,7 @@ public class DefaultFileLockManager private int timeout = 0; + @Override public Lock readFileLock( File file ) throws FileLockException, FileLockTimeoutException @@ -162,18 +162,20 @@ public class DefaultFileLockManager } } + Lock current = lockFiles.get( file ); + try { - Lock current = lockFiles.get( file ); + if ( current != null ) { log.debug( "write lock file exist continue wait" ); continue; } - lock = new Lock(file, true); - createNewFileQuietly(file); - lock.openLock(true, timeout > 0); + lock = new Lock( file, true ); + createNewFileQuietly( file ); + lock.openLock( true, timeout > 0 ); acquired = true; } catch ( FileNotFoundException e ) @@ -189,47 +191,20 @@ public class DefaultFileLockManager } catch ( IOException e ) { - if (lock!=null && lock.isValid()) { - try { - lock.close(); - } catch (IOException ex) { - // Ignore - } - } throw new FileLockException( e.getMessage(), e ); } catch ( IllegalStateException e ) { - // Ignore this log.debug( "openLock {}:{}", e.getClass(), e.getMessage() ); - } catch (Throwable t) { - if (lock!=null && lock.isValid()) { - try { - lock.close(); - } catch (IOException ex) { - // Ignore - } - } - throw t; } - } Lock current = lockFiles.putIfAbsent( file, lock ); - if (lock!=null && lock != current) { - try { - lock.close(); - } catch (IOException e) { - // ignore - } - - } if ( current != null ) { lock = current; } - return lock; |