LogSegmentMetadata { public static LogSegmentMetadata parseData(String path, byte[] data) throws IOException { return parseData(path, data, false); } private  LogSegmentMetadata(String zkPath,
                               LogSegmentMetadataVersion version,
                               long ledgerId,
                               long firstTxId,
                               long lastTxId,
                               long completionTime,
                               boolean inprogress,
                               int recordCount,
                               long logSegmentSequenceNumber,
                               long lastEntryId,
                               long lastSlotId,
                               int regionId,
                               long status,
                               long minActiveEntryId,
                               long minActiveSlotId,
                               long startSequenceId,
                               boolean envelopeEntries); String getZkPath(); String getZNodeName(); long getFirstTxId(); long getLastTxId(); long getCompletionTime(); long getLedgerId(); long getLogSegmentSequenceNumber(); int getVersion(); boolean getEnvelopeEntries(); long getLastEntryId(); long getStartSequenceId(); boolean isTruncated(); boolean isPartiallyTruncated(); boolean isNonTruncated(); long getLastSlotId(); DLSN getLastDLSN(); DLSN getMinActiveDLSN(); DLSN getFirstDLSN(); int getRecordCount(); int getRegionId(); boolean isInProgress(); @VisibleForTesting boolean isDLSNinThisSegment(DLSN dlsn); @VisibleForTesting boolean isRecordPositionWithinSegmentScope(LogRecord record); @VisibleForTesting boolean isRecordLastPositioninThisSegment(LogRecord record); static Future<LogSegmentMetadata> read(ZooKeeperClient zkc, String path); static Future<LogSegmentMetadata> read(ZooKeeperClient zkc, String path, final boolean skipMinVersionCheck); static LogSegmentMetadata parseData(String path, byte[] data); String getFinalisedData(); String getFinalisedData(LogSegmentMetadataVersion version); void write(ZooKeeperClient zkc); boolean equals(Object o); int hashCode(); String toString(); Mutator mutator(); boolean supportsLogSegmentSequenceNo(); static boolean supportsLogSegmentSequenceNo(int version); static boolean supportsEnvelopedEntries(int version); boolean supportsSequenceId(); static boolean supportsSequenceId(int version); static final Comparator<LogSegmentMetadata> COMPARATOR; static final Comparator<LogSegmentMetadata> DESC_COMPARATOR; static final int LEDGER_METADATA_CURRENT_LAYOUT_VERSION; static final int LEDGER_METADATA_OLDEST_SUPPORTED_VERSION; }
@Test(timeout = 60000) public void testParseInvalidMetadata() throws Exception { try { LogSegmentMetadata.parseData("/metadata1", new byte[0], false); fail("Should fail to parse invalid metadata"); } catch (IOException ioe) { } }