DirectByteBuffer buffer = entry.getBuffer();
if ( buffer.limit(SS_CACHE) - buffer.position(SS_CACHE) != entry.getLength()){
throw( new CacheFileManagerException( this,"flush: inconsistent entry length, position wrong" ));
}
expected_per_entry_write += entry.getLength();
buffers[i] = buffer;
}
long expected_overall_write = multi_block_next - multi_block_start;
if ( expected_per_entry_write != expected_overall_write ){
throw( new CacheFileManagerException( this,"flush: inconsistent write length, entrys = " + expected_per_entry_write + " overall = " + expected_overall_write ));
}
getFMFile().write( buffers, multi_block_start );
manager.fileBytesWritten( expected_overall_write );
write_ok = true;
}catch( FMFileManagerException e ){
throw( new CacheFileManagerException( this,"flush fails", e ));
}finally{
for (int i=0;i<multi_block_entries.size();i++){