Zkontrolovat výjimku OverlappingFileLockException pro metodu FileChannel lock()

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

Toto pravidlo označí příznakem lock() metoda, která nemá blok try/catch s OverlappingFileLockException nebo pokud okolní metoda nevyvolá OverlappingFileLockException .

Příklad 1:

< span class="Code" > public MyClass{
private void doX(){
FileChannel fc= getFileChannel();
fc.lock();
}
}

Příklad 2:

< span class="Code" > public MyClass rozšiřuje FileChannel{
private void doX(){
super.lock();
}
// další kód
}

Příklad 3:

< span class="Code" > public MyClass rozšiřuje FileChannel{
private void doX() throws OverlappingFileLockException{
super.lock();
}
private void doY() {
try{
super.lock();
catch {OverlappingFileLockException e} {}
}
// další kód
}

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

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

V příkladu 3 se nic neoznačí příznakem, protože metoda doX() již generuje OverlappingFileLockException a metoda doY() zachytává OverlappingFileLockException .

Java SE 6 přidal systémovou vlastnost sun.nio.ch.disableSystemWideOverlappingFileLockCheck k řízení java.nio.channels.FileChannel.lock chování při kontrole souborů.

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