Zkontrolovat výjimku OverlappingFileLockException pro metodu FileChannel lock()

Toto pravidlo označí příznakem použití metody java.nio.channels.FileChannel.lock(). V prostředí Java SE 6 nyní metoda lock() vygeneruje výjimku java.nio.channels.OverlappingFileLockException.

Toto pravidlo označí metodu lock(), která nemá blok try/catch s výjimkou OverlappingFileLockException, nebo pokud zapouzdřující metoda nevygeneruje výjimku OverlappingFileLockException.

Příklad 1:

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

Příklad 2:

public MyClass extends FileChannel{
private void doX(){
super.lock();
}
// další kód
}

Příklad 3:

public MyClass extends FileChannel{
private void doX() throws OverlappingFileLockException{
super.lock();
}
private void doY() {
try{
super.lock();
catch {OverlappingFileLockException e} {}
}
// další kód
}

V příkladu 1 bude označeno volání fc.lock().

V příkladu 2 bude označeno volání super.lock().

V příkladu 3 nebude nic označeno, protože metoda doX() již vygenerovala výjimku OverlappingFileLockException a metoda doY() zachytí výjimku OverlappingFileLockException.

Prostředí Java SE 6 přidalo systémovou vlastnost sun.nio.ch.disableSystemWideOverlappingFileLockCheck ke kontrole chování kontroly souboru java.nio.channels.FileChannel.lock.

Další informace viz položka 4 v příručce Kompatibilita Java SE 6.