OverlappingFileLockException für die Methode FileChannel.lock() suchen

Diese Regel markiert die Verwendung der Methode java.nio.channels.FileChannel.lock(). In Java SE 6 löst die Methode lock() jetzt die Ausnahme java.nio.channels.OverlappingFileLockException aus.

Diese Regel markiert die Methode lock(), falls sie keinen try/catch-Block mit OverlappingFileLockException hat. Die Markierung wird auch durchgeführt, wenn die übergeordnete Methode keine OverlappingFileLockException auslöst.

Beispiel 1:

public MyClass{
private void doX(){
FileChannel fc= getFileChannel();
fc.lock();
}
}

Beispiel 2:

public MyClass extends FileChannel{
private void doX(){
super.lock();
}
// weiterer Code
}

Beispiel 3:

public MyClass extends FileChannel{
private void doX() throws OverlappingFileLockException{
super.lock();
}
private void doY() {
try{
super.lock();
catch {OverlappingFileLockException e} {}
}
// weiterer Code
}

In Beispiel 1 wird der Aufruf fc.lock() markiert.

In Beispiel 2 wird der Aufruf super.lock() markiert.

In Beispiel 3 wird keine Markierung durchgeführt, weil die Methode doX() bereits eine OverlappingFileLockException auslöst und die Methode doY() die OverlappingFileLockException abfängt.

Java SE 6 hat die neue Systemeigenschaft sun.nio.ch.disableSystemWideOverlappingFileLockCheck, um das Verhalten von java.nio.channels.FileChannel.lock hinsichtlich der Dateiprüfung zu steuern.

Weitere Informationen finden Sie unter Punkt 4 in der Veröffentlichung Java SE 6 Compatibility.