public Object next() throws IOException {
  if (prevPos <= 0)   return null;
  long endOfThisRecord=prevPos;
  int thisLength=nextLength;
  long recordStart=prevPos - thisLength;
  prevPos=recordStart - 4;
  if (prevPos <= 0)   return null;
  long bufferPos=fis.getBufferPos();
  if (prevPos >= bufferPos) {
  }
 else {
    long seekPos=endOfThisRecord - fis.getBufferSize();
    seekPos=Math.min(seekPos,prevPos);
    seekPos=Math.max(seekPos,0);
    fis.seek(seekPos);
    fis.peek();
  }
  fis.seek(prevPos);
  nextLength=fis.readInt();
  Object o=codec.readVal(fis);
  return o;
}

public Object next ( ) throws IOException { if ( prevPos <= 0 ) return null ; long endOfThisRecord = prevPos ; int thisLength = nextLength ; long recordStart = prevPos - thisLength ; prevPos = recordStart - 4 ; if ( prevPos <= 0 ) return null ; long bufferPos = fis . getBufferPos ( ) ; if ( prevPos >= bufferPos ) { } else { long seekPos = endOfThisRecord - fis . getBufferSize ( ) ; seekPos = Math . min ( seekPos , prevPos ) ; seekPos = Math . max ( seekPos , 0 ) ; fis . seek ( seekPos ) ; fis . peek ( ) ; } fis . seek ( prevPos ) ; nextLength = fis . readInt ( ) ; Object o = codec . readVal ( fis ) ; return o ; }
returns the next object from the log , or null if none available .
