FileChannel lock() 메소드에 대해 OverlappingFileLockException 확인

이 규칙은 java.nio.channels.FileChannel.lock() 메소드를 사용하여 변경할 수 있습니다. Java SE 6에서 lock() 메소드가 이제 처리 java.nio.channels.OverlappingFileLockException .

이 규칙은 lock() try/catch 블록이 없는 메소드 OverlappingFileLockException 또는 주변 메소드가 처리하지 않는 경우 OverlappingFileLockException .

예제 1:

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

예제 2:

< span class="Code" > public MyClass 는 FileChannel{을 확장합니다.
private void doX(){
super.lock();
}
// more code
}

예제 3

< span class="Code" > public MyClass 는 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 항목을 참조하십시오.