diff --git oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java index abdac78..2657017 100644 --- oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java +++ oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java @@ -263,7 +263,7 @@ public class Segment { return new SegmentReferences() { @Override public SegmentId getSegmentId(int reference) { - checkArgument(reference <= referencedSegmentIdCount); + checkArgument(reference <= referencedSegmentIdCount, "Segment reference out of bounds"); SegmentId id = refIds[reference - 1]; if (id == null) { synchronized(refIds) { diff --git oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/ConsistencyChecker.java oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/ConsistencyChecker.java index f6bd66f..1bbed7e 100644 --- oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/ConsistencyChecker.java +++ oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/ConsistencyChecker.java @@ -291,7 +291,7 @@ public class ConsistencyChecker implements Closeable { return null; } catch (RuntimeException | IOException e) { - printError("Error while traversing {0}: {1}", path, e.getMessage()); + printError("Error while traversing {0}: {1}", path, e); return path; } } diff --git oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tooling/CheckInvalidRepositoryTest.java oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tooling/CheckInvalidRepositoryTest.java index 0c3b0e8..a75fa5b 100644 --- oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tooling/CheckInvalidRepositoryTest.java +++ oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tooling/CheckInvalidRepositoryTest.java @@ -99,7 +99,10 @@ public class CheckInvalidRepositoryTest extends CheckRepositoryTestBase { errWriter.close(); assertExpectedOutput(strOut.toString(), Lists.newArrayList("No good revision found")); - assertExpectedOutput(strErr.toString(), Lists.newArrayList("Error while traversing /z", "Path /z not found")); + assertExpectedOutput(strErr.toString(), + Lists.newArrayList( + "Error while traversing /z: java.lang.IllegalArgumentException: Segment reference out of bounds", + "Path /z not found")); } @Test @@ -129,6 +132,7 @@ public class CheckInvalidRepositoryTest extends CheckRepositoryTestBase { assertExpectedOutput(strOut.toString(), Lists.newArrayList("Checked 1 nodes and 1 properties", "Path /a is consistent", "Searched through 2 revisions")); - assertExpectedOutput(strErr.toString(), Lists.newArrayList("Error while traversing /a")); + assertExpectedOutput(strErr.toString(), Lists.newArrayList( + "Error while traversing /a: java.lang.IllegalArgumentException: Segment reference out of bounds")); } }