Browse Source

Reverting locking modifications

tags/archiva-2.2.2
Martin Stockhammer 7 years ago
parent
commit
5780110b79

+ 7
- 32
archiva-modules/archiva-base/archiva-filelock/src/main/java/org/apache/archiva/common/filelock/DefaultFileLockManager.java View File

@@ -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;



Loading…
Cancel
Save