aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Frade <ifrade@google.com>2025-02-26 19:05:53 -0800
committerIvan Frade <ifrade@google.com>2025-02-27 18:11:05 +0000
commit5db57fe2a932fc05d28e057df9ff9d6a0bd6abe3 (patch)
tree7a7f202ab3fd5283258955e3539a9df99dbfc5b1
parent3483bd76e9d5f6ee68fedfa67b4800f80a21d637 (diff)
downloadjgit-master.tar.gz
jgit-master.zip
BlameRegionMerger: report invalid regions with checked exception.HEADmaster
If the cached regions are invalid the merger throws an IllegalStateException. This is too strict. The caller can just continue working as if there was no cache. Report the error as IOException, that the caller can catch and handle. Change-Id: I19a1061225533b46d3a17936912a11000430f2ce
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/blame/BlameRegionMergerTest.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameRegionMerger.java2
2 files changed, 2 insertions, 2 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/blame/BlameRegionMergerTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/blame/BlameRegionMergerTest.java
index cf0dc452e7..1b28676fbf 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/blame/BlameRegionMergerTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/blame/BlameRegionMergerTest.java
@@ -174,7 +174,7 @@ public class BlameRegionMergerTest extends RepositoryTestCase {
public void blame_corruptedIndex() {
Region outOfRange = new Region(0, 43, 4);
// This region is out of the blamed area
- assertThrows(IllegalStateException.class,
+ assertThrows(IOException.class,
() -> blamer.mergeOneRegion(outOfRange));
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameRegionMerger.java b/org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameRegionMerger.java
index bf7e0ff736..67bc6fb789 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameRegionMerger.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameRegionMerger.java
@@ -72,7 +72,7 @@ class BlameRegionMerger {
List<Candidate> mergeOneRegion(Region region) throws IOException {
List<CacheRegion> overlaps = findOverlaps(region);
if (overlaps.isEmpty()) {
- throw new IllegalStateException(
+ throw new IOException(
"Cached blame should cover all lines");
}
/*