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.