You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ma...@apache.org on 2016/10/27 10:41:17 UTC
archiva git commit: Additional improvement for file locks
Repository: archiva
Updated Branches:
refs/heads/master 8dc5e696d -> d380bc677
Additional improvement for file locks
Project: http://git-wip-us.apache.org/repos/asf/archiva/repo
Commit: http://git-wip-us.apache.org/repos/asf/archiva/commit/d380bc67
Tree: http://git-wip-us.apache.org/repos/asf/archiva/tree/d380bc67
Diff: http://git-wip-us.apache.org/repos/asf/archiva/diff/d380bc67
Branch: refs/heads/master
Commit: d380bc6779aeefb80b74923d5ffa2e0c50994709
Parents: 8dc5e69
Author: Martin Stockhammer <ma...@apache.org>
Authored: Thu Oct 27 12:21:46 2016 +0200
Committer: Martin Stockhammer <ma...@apache.org>
Committed: Thu Oct 27 12:22:56 2016 +0200
----------------------------------------------------------------------
.../common/filelock/DefaultFileLockManager.java | 18 ++++++++++++++----
.../filelock/DefaultFileLockManagerTest.java | 4 ++--
2 files changed, 16 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/archiva/blob/d380bc67/archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/DefaultFileLockManager.java
----------------------------------------------------------------------
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 2ce2f18..258366a 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
@@ -198,28 +198,38 @@ public class DefaultFileLockManager
}
throw new FileLockException( e.getMessage(), e );
}
- catch ( Throwable 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
- } finally {
- lock = null;
}
}
- log.debug( "openLock {}:{}", e.getClass(), e.getMessage() );
+ 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;
http://git-wip-us.apache.org/repos/asf/archiva/blob/d380bc67/archiva-modules/archiva-base/archiva-filelock/src/test/java/org/apache/archiva/common/filelock/DefaultFileLockManagerTest.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-filelock/src/test/java/org/apache/archiva/common/filelock/DefaultFileLockManagerTest.java b/archiva-modules/archiva-base/archiva-filelock/src/test/java/org/apache/archiva/common/filelock/DefaultFileLockManagerTest.java
index 9618661..19f836d 100644
--- a/archiva-modules/archiva-base/archiva-filelock/src/test/java/org/apache/archiva/common/filelock/DefaultFileLockManagerTest.java
+++ b/archiva-modules/archiva-base/archiva-filelock/src/test/java/org/apache/archiva/common/filelock/DefaultFileLockManagerTest.java
@@ -246,7 +246,7 @@ public class DefaultFileLockManagerTest
public void thread9()
throws FileLockException, FileLockTimeoutException, IOException
{
- logger.info( "thread7" );
+ logger.info( "thread9" );
Lock lock = fileLockManager.writeFileLock( this.file );
try
{
@@ -274,7 +274,7 @@ public class DefaultFileLockManagerTest
{
fileLockManager.release( lock );
}
- logger.info( "thread8 ok" );
+ logger.info( "thread10 ok" );
success.incrementAndGet();
}