final
protected void check(long id)
{
if ( id > Integer.MAX_VALUE )
throw new BlockException(format("BlockAccessBase: Id (%d) too large", id )) ;
// Access to numFileBlocks not synchronized - it's only a check
if ( id < 0 || id >= numFileBlocks )
{
// Do it properly!
synchronized(this)
{
if ( id < 0 || id >= numFileBlocks )
throw new BlockException(format("BlockAccessBase: Bounds exception: %s: (%d,%d)", file.filename, id, numFileBlocks)) ;
}
}
}