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 5895919f30247d55da9af088f81317447a814f85
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Thu Jan 3 10:00:22 2019 +0100

    Increase the limit in the number of dimensions handled by CoordinateFormat 
from 32 to 64, for consistency with the limits used elswhere in the library.
---
 .../src/main/java/org/apache/sis/geometry/CoordinateFormat.java   | 8 ++++----
 .../src/main/java/org/apache/sis/internal/util/Numerics.java      | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/geometry/CoordinateFormat.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/geometry/CoordinateFormat.java
index 32577d6..a535e81 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/geometry/CoordinateFormat.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/geometry/CoordinateFormat.java
@@ -169,7 +169,7 @@ public class CoordinateFormat extends 
CompoundFormat<DirectPosition> {
      *
      * @see #negate(int)
      */
-    private transient int negate;
+    private transient long negate;
 
     /**
      * The time epochs. Non-null only if the at least on ordinate is to be 
formatted as a date.
@@ -355,17 +355,17 @@ public class CoordinateFormat extends 
CompoundFormat<DirectPosition> {
      * Remembers that ordinate values at the given dimension will need to have 
their sign reverted.
      */
     private void negate(final int dimension) {
-        if (dimension >= Integer.SIZE) {
+        if (dimension >= Long.SIZE) {
             throw new 
ArithmeticException(Errors.format(Errors.Keys.ExcessiveNumberOfDimensions_1, 
dimension));
         }
-        negate |= (1 << dimension);
+        negate |= (1L << dimension);
     }
 
     /**
      * Returns {@code true} if the value at the given dimension needs to have 
its sign reversed.
      */
     private boolean isNegative(final int dimension) {
-        return (dimension < Integer.SIZE) && (negate & (1 << dimension)) != 0;
+        return (dimension < Long.SIZE) && (negate & (1L << dimension)) != 0;
     }
 
     /**
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/internal/util/Numerics.java 
b/core/sis-utility/src/main/java/org/apache/sis/internal/util/Numerics.java
index 8090ef6..60977d6 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/internal/util/Numerics.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/internal/util/Numerics.java
@@ -77,7 +77,7 @@ public final class Numerics extends Static {
      * classes have their number of dimensions limited mostly by the capacity 
of the {@code int} primitive type, but
      * we nevertheless set the maximum number of dimensions to a lower value 
for catching probable errors. Note that
      * this is not a "universal" limit through Apache SIS, as some algorithms 
impose a smaller number of dimensions.
-     * Some limits found in specific Apache SIS code are 20, {@value 
Integer#SIZE} or {@value Long#SIZE}.</p>
+     * Some other limits found in specific Apache SIS code are 20 or {@value 
Long#SIZE}.</p>
      */
     public static final int MAXIMUM_MATRIX_SIZE = Short.MAX_VALUE;
 

Reply via email to