Ez a szabály a java.nio.channels.FileChannel.lock() metódus használatát látja el jelzővel. A Java SE 6-os változatában a lock() metódus már java.nio.channels.OverlappingFileLockException kivételt dob.
Ez a szabály azon lock() metódust látja el jelzővel, mely nem rendelkezik OverlappingFileLockException kivételt meghatározó try/catch blokkal, vagy a körülfogó metódus nem dob OverlappingFileLockException kivételt.
1. példa:
|
public MyClass{
private void doX(){ FileChannel fc= getFileChannel(); fc.lock(); } } |
2. példa:
|
public MyClass extends FileChannel{
private void doX(){ super.lock(); } // további kódrészek } |
3. példa:
|
public MyClass extends FileChannel{
private void doX() throws OverlappingFileLockException{ super.lock(); } private void doY() { try{ super.lock(); catch {OverlappingFileLockException e} {} } // további kódrészek } |
Az 1. példában a rendszer jelzővel látja el az fc.lock() hívást.
A 2. példában a super.lock() hívás kerül jelzővel ellátásra.
A 3. példában a rendszer semmit sem lát el jelzővel, mivel a doX() metódus már OverlappingFileLockException kivételt dob, a doY() metódus pedig elkapja a OverlappingFileLockException kivételt.
A Java SE 6-os változatához hozzáadott sun.nio.ch.disableSystemWideOverlappingFileLockCheck rendszertulajdonság a java.nio.channels.FileChannel.lock fájlellenőrzési viselkedését vezérli.
További információkért tekintse meg a 4-es pontot a Java SE 6 kompatibilitási útmutató című dokumentumban.