@Override
 public void close() throws IOException {
   try {
     readerRecordBuffer.close();
   } catch (IOException e) {
     /* don't care */
   }
 }
 @Override
 public void next() throws IOException, IllegalArgumentException, NoSuchElementException {
   if (hasNext()) {
     readerRecord = readerRecordBuffer.getRecord(readerRecordIndex);
     ++readerRecordIndex;
   } else {
     throw new NoSuchElementException();
   }
 }
 @Override
 public void next() throws IOException {
   delegate.next();
   animationRecord =
       animationRecordBuffer.getRecord(
           animationTimeStepRecordOffset
               + ((Number) delegate.read(shapefileJoinAttributeIndex)).intValue()
               - animationJoinValueOffset);
   _isRecordDebuged = false;
 }
 @Override
 public void close() throws IOException {
   try {
     delegate.close();
   } catch (IOException e) {
     /* don't care */
   }
   try {
     animationRecordBuffer.close();
   } catch (IOException e) {
     /* don't care */
   }
 }