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 aa8ce369ec4332d8f3af9ad155c657e85c9e67c9 Author: Martin Desruisseaux <[email protected]> AuthorDate: Wed Sep 2 14:52:45 2020 +0200 More informative error message when an envelope or position given to a GeneralEnvelope does not have the expected CRS. --- .../main/java/org/apache/sis/geometry/AbstractEnvelope.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractEnvelope.java b/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractEnvelope.java index 293e748..2a40240 100644 --- a/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractEnvelope.java +++ b/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractEnvelope.java @@ -41,6 +41,7 @@ import org.apache.sis.util.resources.Errors; import org.apache.sis.io.wkt.Formatter; import org.apache.sis.io.wkt.FormattableObject; import org.apache.sis.internal.referencing.WKTUtilities; +import org.apache.sis.referencing.IdentifiedObjects; import org.apache.sis.math.Vector; import static java.lang.Double.doubleToLongBits; @@ -112,7 +113,7 @@ import static org.apache.sis.math.MathFunctions.isNegativeZero; * </ul> * * @author Martin Desruisseaux (IRD, Geomatys) - * @version 1.0 + * @version 1.1 * @since 0.3 * @module */ @@ -153,8 +154,14 @@ public abstract class AbstractEnvelope extends FormattableObject implements Enve * Weakly asserts that the given CRS are equal. This method may return {@code false} without throwing * {@link AssertionError}, so callers should still test the returned value in their {@code assert} statement. */ - static boolean assertEquals(final CoordinateReferenceSystem crs1, final CoordinateReferenceSystem crs2) { - return equals(crs1, crs2, ComparisonMode.DEBUG); + static boolean assertEquals(final CoordinateReferenceSystem expected, final CoordinateReferenceSystem actual) { + if (equals(expected, actual, ComparisonMode.DEBUG)) return true; + final String title = IdentifiedObjects.getDisplayName(actual, null); + if (title != null && !title.equalsIgnoreCase(IdentifiedObjects.getDisplayName(expected, null))) { + throw new AssertionError(Errors.format(Errors.Keys.IllegalCoordinateSystem_1, title)); + } + // Error message not informative enough. Let caller makes its own. + return false; } /**
