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.