Class FileLock
java.lang.Object
org.openide.filesystems.FileLock
- All Implemented Interfaces:
AutoCloseable
Represents an acquired lock on a
FileObject
.
Typical usage includes locking the file in the editor on first
modification, and then using this object to ensure exclusive access when
overwriting the file (saving) by using FileObject.getOutputStream(org.openide.filesystems.FileLock)
.
Also used for renames, deletes, &c.
Note that such locks are only used to protect against concurrent write accesses, and are not used for read operations (i.e. they are not write-one-read-many locks). Normally this is sufficient protection. If you really need an atomic read, you may simply lock the file, perform the read, and unlock it when done. The file will still be protected against writes, although the read operation did not request a lock.
The FileLock
implements AutoCloseable
, so it can be created within
try-with-resources resource clause and the lock will be released at the end of the try block.
- Since:
- 9.2 implements
AutoCloseable
interface. - See Also:
-
Field Details
-
NONE
Constant that can be used in filesystems that do not support locking. Represents a lock which is never valid. -
lockedBy
-
-
Constructor Details
-
FileLock
public FileLock()
-
-
Method Details
-
releaseLock
public void releaseLock()Release this lock. In typical usage this method will be called in afinally
clause. -
close
public void close()Releases the lock. Equivalent toreleaseLock()
call.- Specified by:
close
in interfaceAutoCloseable
-
isValid
public boolean isValid()Test whether this lock is still active, or released.- Returns:
true
if lock is still active
-
finalize
public void finalize()Finalize this object. CallsreleaseLock()
to release the lock if the program for some reason failed to.
-