private boolean readMetaContinuation ( ReadStream is , int crc ) throws IOException { long value = BitsUtil . readLong ( is ) ; crc = Crc32Caucho . generate ( crc , value ) ; int crcFile = BitsUtil . readInt ( is ) ; if ( crcFile != crc ) { log . fine ( "meta-segment crc mismatch" ) ; return false ; } long address = value & ~ 0xffff ; int length = ( int ) ( ( value & 0xffff ) << 16 ) ; if ( length != _segmentMeta [ 0 ] . size ( ) ) { throw new IllegalStateException ( ) ; } SegmentExtent extent = new SegmentExtent ( 0 , address , length ) ; _metaExtents . add ( extent ) ; _metaAddress = address ; _metaOffset = address ; _metaTail = address + length ; // false continues to the next segment return false ; }
Continuation segment for the metadata .