synchronized public int read(ByteBuffer buffer, long loc) {
checkIfClosed() ;
if ( TRACKING )
log("read<<@" + loc) ;
if ( loc < 0 || loc > bytes.limit() )
throw new StorageException("Out of range(" + name + "[read]): " + loc + " [0," + bytes.limit() + ")") ;
if ( loc == bytes.limit() )
log.warn("At the limit(" + name + "[read]): " + loc) ;
int x = bytes.position() ;
bytes.position((int)loc) ;
int len = read(buffer) ;