public synchronized void update( long recid, Object obj, Serializer serializer ) throws IOException
{
checkIfClosed();
if ( recid <= 0 )
{
throw new IllegalArgumentException( I18n.err( I18n.ERR_536, recid ) );
}
Location logRecid = new Location( recid );
Location physRecid = logMgr.fetch( logRecid );
byte[] data = serializer.serialize( obj );
if ( DEBUG )
{
System.out.println( "BaseRecordManager.update() recid " + recid + " length " + data.length );
}
Location newRecid = physMgr.update( physRecid, data, 0, data.length );
if ( !newRecid.equals( physRecid ) )
{
logMgr.update( logRecid, newRecid );
}
}