이 규칙은 java.nio.channels.FileChannel.lock() 메소드의 사용을 플래그 지정합니다. Java SE 6 에서 lock() 메소드가 현재 java.nio.channels.OverlappingFileLockException을 발생시킵니다.
이 규칙은 OverlappingFileLockException이 있는 예외 처리(try/catch) 블록이 없거나 주변 메소드가 OverlappingFileLockException를 발생시키지 않는 경우 lock() 메소드를 플래그 지정합니다.
예제 1:
|
public MyClass{
private void doX(){ FileChannel fc= getFileChannel(); fc.lock(); } } |
예제 2:
|
public MyClass extends FileChannel{
private void doX(){ super.lock(); } // more code } |
예제 3
|
public MyClass extends FileChannel{
private void doX() throws OverlappingFileLockException{ super.lock(); } private void doY() { try{ super.lock(); catch {OverlappingFileLockException e} {} } // more code } |
예제 1에서 fc.lock() 호출이 플래그 지정됩니다.
예제 2에서 super.lock() 호출이 플래그 지정됩니다.
예제 3에서 플래그 지정되는 것이 없습니다. doX() 메소드가 이미 OverlappingFileLockException을 발생시키고 doY() 메소드가 OverlappingFileLockException을 발견하기 때문입니다.
Java SE 6은 시스템 특성인 sun.nio.ch.disableSystemWideOverlappingFileLockCheck를 추가하여 java.nio.channels.FileChannel.lock 파일 확인 동작을 제어합니다.
추가 정보는 Java SE 6 호환성 안내서의 4 항목을 참조하십시오.