This is an automated email from the ASF dual-hosted git repository. desruisseaux pushed a commit to branch geoapi-4.0 in repository https://gitbox.apache.org/repos/asf/sis.git
commit b56244371d9f620c38b45fa64bdcda371077aacb Author: Martin Desruisseaux <martin.desruisse...@geomatys.com> AuthorDate: Thu Mar 23 21:33:32 2023 +0100 Use `ArithmeticException` for errors related to an overflow of integer capacity. --- .../src/main/java/org/apache/sis/coverage/grid/GridCoverageBuilder.java | 2 +- .../src/main/java/org/apache/sis/coverage/grid/GridOrientation.java | 2 +- core/sis-feature/src/main/java/org/apache/sis/index/tree/PointTree.java | 2 +- .../src/main/java/org/apache/sis/geometry/Envelopes.java | 2 +- core/sis-referencing/src/main/java/org/apache/sis/referencing/CRS.java | 2 +- core/sis-utility/src/main/java/org/apache/sis/util/ArraysExt.java | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverageBuilder.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverageBuilder.java index b45968bde7..eddd5be859 100644 --- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverageBuilder.java +++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverageBuilder.java @@ -398,7 +398,7 @@ public class GridCoverageBuilder { public GridCoverageBuilder flipGridAxis(final int dimension) { ArgumentChecks.ensurePositive("dimension", dimension); if (dimension >= Long.SIZE) { - throw new IllegalArgumentException(Errors.format(Errors.Keys.ExcessiveNumberOfDimensions_1, dimension + 1)); + throw new ArithmeticException(Errors.format(Errors.Keys.ExcessiveNumberOfDimensions_1, dimension + 1)); } flippedAxes ^= (1L << dimension); return this; diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridOrientation.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridOrientation.java index 47b413c395..99e7bea3bf 100644 --- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridOrientation.java +++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridOrientation.java @@ -195,7 +195,7 @@ public final class GridOrientation implements Serializable { public GridOrientation flipGridAxis(final int dimension) { ArgumentChecks.ensurePositive("dimension", dimension); if (dimension >= Long.SIZE) { - throw new IllegalArgumentException(Errors.format(Errors.Keys.ExcessiveNumberOfDimensions_1, dimension + 1)); + throw new ArithmeticException(Errors.format(Errors.Keys.ExcessiveNumberOfDimensions_1, dimension + 1)); } return new GridOrientation(flippedAxes ^ (1L << dimension), crsVariant, canReorderGridAxis); } diff --git a/core/sis-feature/src/main/java/org/apache/sis/index/tree/PointTree.java b/core/sis-feature/src/main/java/org/apache/sis/index/tree/PointTree.java index 9a77fda74e..515996c135 100644 --- a/core/sis-feature/src/main/java/org/apache/sis/index/tree/PointTree.java +++ b/core/sis-feature/src/main/java/org/apache/sis/index/tree/PointTree.java @@ -218,7 +218,7 @@ public class PointTree<E> extends AbstractSet<E> implements CheckedContainer<E> ArgumentChecks.ensureStrictlyPositive("nodeCapacity", nodeCapacity); final int n = bounds.getDimension(); if (n > MAXIMUM_DIMENSIONS) { - throw new IllegalArgumentException(Errors.format(Errors.Keys.ExcessiveNumberOfDimensions_1, n)); + throw new ArithmeticException(Errors.format(Errors.Keys.ExcessiveNumberOfDimensions_1, n)); } treeRegion = new double[n*2]; boolean isValid = (n >= 2); diff --git a/core/sis-referencing/src/main/java/org/apache/sis/geometry/Envelopes.java b/core/sis-referencing/src/main/java/org/apache/sis/geometry/Envelopes.java index 5c285b781a..bf2c3f9737 100644 --- a/core/sis-referencing/src/main/java/org/apache/sis/geometry/Envelopes.java +++ b/core/sis-referencing/src/main/java/org/apache/sis/geometry/Envelopes.java @@ -416,7 +416,7 @@ public final class Envelopes extends Static { * This coordinate will be updated in the `switch` statement inside the `while` loop. */ if (sourceDim >= 20) { // Maximal value supported by Formulas.pow3(int) is 19. - throw new IllegalArgumentException(Errors.format(Errors.Keys.ExcessiveNumberOfDimensions_1, sourceDim)); + throw new ArithmeticException(Errors.format(Errors.Keys.ExcessiveNumberOfDimensions_1, sourceDim)); } boolean isDerivativeSupported = true; DirectPosition temporary = null; diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/CRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/CRS.java index fa26a03e72..f46d4c4e61 100644 --- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/CRS.java +++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/CRS.java @@ -1009,7 +1009,7 @@ public final class CRS extends Static { throw new IndexOutOfBoundsException(Errors.format(Errors.Keys.IndexOutOfBounds_1, d)); } if (d >= Long.SIZE) { - throw new IllegalArgumentException(Errors.format(Errors.Keys.ExcessiveNumberOfDimensions_1, d+1)); + throw new ArithmeticException(Errors.format(Errors.Keys.ExcessiveNumberOfDimensions_1, d+1)); } selected |= (1L << d); } diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/ArraysExt.java b/core/sis-utility/src/main/java/org/apache/sis/util/ArraysExt.java index be151421cb..4c072de282 100644 --- a/core/sis-utility/src/main/java/org/apache/sis/util/ArraysExt.java +++ b/core/sis-utility/src/main/java/org/apache/sis/util/ArraysExt.java @@ -2253,7 +2253,7 @@ public final class ArraysExt extends Static { public static int[] unionOfSorted(final int[] array1, final int[] array2) { if (array1 == null) return array2; if (array2 == null) return array1; - int[] union = new int[array1.length + array2.length]; + int[] union = new int[Math.addExact(array1.length, array2.length)]; int nu=0; for (int ix=0, iy=0;;) { if (ix == array1.length) {