public abstract FileLock tryLock(long position, long size, boolean shared) throws IOException;
public final FileLock tryLock() throws IOException { return tryLock(0, Long.MAX_VALUE, false); }
  public abstract FileLock tryLock(long position, long size, boolean shared)    throws IOException;