Ta reguła powoduje oznaczenie użycia metody java.nio.channels.FileChannel.lock(). W środowisku Java SE 6 metoda lock() zgłasza obecnie wyjątek java.nio.channels.OverlappingFileLockException.
Ta reguła powoduje oznaczenie metody lock(), która nie zawiera bloku try/catch z wyjątkiem OverlappingFileLockException, lub jeśli metoda otaczająca nie zgłasza wyjątku OverlappingFileLockException.
Przykład 1:
|
public MyClass{
private void doX(){ FileChannel fc= getFileChannel(); fc.lock(); } } |
Przykład 2:
|
public MyClass extends FileChannel{
private void doX(){ super.lock(); } // dalszy kod } |
Przykład 3:
|
public MyClass extends FileChannel{
private void doX() throws OverlappingFileLockException{ super.lock(); } private void doY() { try{ super.lock(); catch {OverlappingFileLockException e} {} } // dalszy kod } |
W przykładzie 1 zostanie oznaczone wywołanie metody fc.lock().
W przykładzie 2 zostanie oznaczone wywołanie metody super.lock().
W przykładzie 3 nic nie zostanie oznaczone, ponieważ metoda doX() zgłasza już wyjątek OverlappingFileLockException, a metoda doY() przechwytuje wyjątek OverlappingFileLockException.
W środowisku Java SE 6 dodano właściwość systemową sun.nio.ch.disableSystemWideOverlappingFileLockCheck w celu sterowania działaniem sprawdzania plików w metodzie java.nio.channels.FileChannel.lock.
Dodatkowe informacje można znaleźć w punkcie 4 podręcznika Kompatybilność środowiska Java SE 6.