You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2016/11/25 11:23:29 UTC

svn commit: r1771289 - in /sis/branches/JDK8/core: sis-metadata/src/main/java/org/apache/sis/metadata/sql/ sis-referencing/src/main/java/org/apache/sis/geometry/ sis-referencing/src/main/java/org/apache/sis/parameter/ sis-referencing/src/test/java/org/...

Author: desruisseaux
Date: Fri Nov 25 11:23:28 2016
New Revision: 1771289

URL: http://svn.apache.org/viewvc?rev=1771289&view=rev
Log:
Adjustment of Unicode character used in negative infinity formatting.
Javadoc and comment formatting.

Modified:
    sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataSource.java
    sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/geometry/GeneralEnvelope.java
    sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterFormat.java
    sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/parameter/Verifier.java
    sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterFormatTest.java
    sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticObjectVerifier.java
    sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ConformalProjectionTest.java
    sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/LambertConicConformalTest.java
    sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/MercatorTest.java
    sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/math/Fraction.java
    sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/ConventionalUnit.java
    sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/RangeFormat.java
    sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/SystemUnit.java
    sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java
    sis/branches/JDK8/core/sis-utility/src/test/java/org/apache/sis/measure/RangeFormatTest.java

Modified: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataSource.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataSource.java?rev=1771289&r1=1771288&r2=1771289&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataSource.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataSource.java [UTF-8] Fri Nov 25 11:23:28 2016
@@ -72,16 +72,17 @@ import org.apache.sis.util.iso.Types;
 
 
 /**
- * A connection to a metadata database in read-only mode. The database must have a schema of the given name
- * ({@code "metadata"} in the example below). Existing entries can be obtained as in the example below:
+ * A connection to a metadata database in read-only mode. It can be either the database
+ * {@linkplain #getProvided() provided by Apache SIS} with pre-defined ISO 19115 metadata,
+ * or another database specified at construction time.
+ * Metadata instances can be obtained as in the example below:
  *
  * {@preformat java
- *   DataSource     source     = ... // This is database-specific.
- *   MetadataSource source     = new MetadataSource(MetadataStandard.ISO_19115, source, "metadata");
- *   Telephone      telephone  = source.lookup(Telephone.class, id);
+ *   MetadataSource metadata = MetadataSource.getProvided();
+ *   Format format = source.lookup(Format.class, "PNG");
  * }
  *
- * where {@code id} is the primary key value for the desired record in the {@code CI_Telephone} table.
+ * where {@code id} is the primary key value for the desired record in the {@code MD_Format} table.
  *
  * <div class="section">Concurrency</div>
  * {@code MetadataSource} is thread-safe but is not concurrent. If concurrency is desired,

Modified: sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/geometry/GeneralEnvelope.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/geometry/GeneralEnvelope.java?rev=1771289&r1=1771288&r2=1771289&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/geometry/GeneralEnvelope.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/geometry/GeneralEnvelope.java [UTF-8] Fri Nov 25 11:23:28 2016
@@ -576,7 +576,7 @@ public class GeneralEnvelope extends Arr
      * <div class="section">Spanning the anti-meridian of a Geographic CRS</div>
      * This method supports envelopes spanning the anti-meridian. If one or both envelopes span
      * the anti-meridian, then the result of the {@code add} operation may be an envelope expanding
-     * to infinities. In such case, the ordinate range will be either [-\u221e\u2026\u221e] or [0\u2026-0] depending on
+     * to infinities. In such case, the ordinate range will be either [\u2212\u221e\u2026\u221e] or [0\u2026\u22120] depending on
      * whatever the original range span the anti-meridian or not.
      *
      * @param  envelope the {@code Envelope} to add to this envelope.

Modified: sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterFormat.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterFormat.java?rev=1771289&r1=1771288&r2=1771289&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterFormat.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterFormat.java [UTF-8] Fri Nov 25 11:23:28 2016
@@ -81,8 +81,8 @@ import static org.apache.sis.util.collec
  *   \u2502 Latitude of natural origin     \u2502 Double \u2502 Mandatory  \u2502  [-80 \u2026 84]�  \u2502         0.0�  \u2502
  *   \u2502 Longitude of natural origin    \u2502 Double \u2502 Mandatory  \u2502 [-180 \u2026 180]� \u2502         0.0�  \u2502
  *   \u2502 Scale factor at natural origin \u2502 Double \u2502 Mandatory  \u2502    (0 \u2026 \u221e)    \u2502         1.0   \u2502
- *   \u2502 False easting                  \u2502 Double \u2502 Mandatory  \u2502   (-\u221e \u2026 \u221e) m  \u2502         0.0 m \u2502
- *   \u2502 False northing                 \u2502 Double \u2502 Mandatory  \u2502   (-\u221e \u2026 \u221e) m  \u2502         0.0 m \u2502
+ *   \u2502 False easting                  \u2502 Double \u2502 Mandatory  \u2502   (\u2212\u221e \u2026 \u221e) m  \u2502         0.0 m \u2502
+ *   \u2502 False northing                 \u2502 Double \u2502 Mandatory  \u2502   (\u2212\u221e \u2026 \u221e) m  \u2502         0.0 m \u2502
  *   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518
  * }
  * </div>
@@ -161,10 +161,10 @@ public class ParameterFormat extends Tab
          *   \u2551 EPSG: Scale factor at natural origin \u2502 Double \u2502 Mandatory  \u2502    (0 \u2026 \u221e)    \u2502         1.0   \u2551
          *   \u2551 OGC:  scale_factor                   \u2502        \u2502            \u2502               \u2502               \u2551
          *   \u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562
-         *   \u2551 EPSG: False easting                  \u2502 Double \u2502 Mandatory  \u2502   (-\u221e \u2026 \u221e) m  \u2502         0.0 m \u2551
+         *   \u2551 EPSG: False easting                  \u2502 Double \u2502 Mandatory  \u2502   (\u2212\u221e \u2026 \u221e) m  \u2502         0.0 m \u2551
          *   \u2551 OGC:  false_easting                  \u2502        \u2502            \u2502               \u2502               \u2551
          *   \u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562
-         *   \u2551 EPSG: False northing                 \u2502 Double \u2502 Mandatory  \u2502   (-\u221e \u2026 \u221e) m  \u2502         0.0 m \u2551
+         *   \u2551 EPSG: False northing                 \u2502 Double \u2502 Mandatory  \u2502   (\u2212\u221e \u2026 \u221e) m  \u2502         0.0 m \u2551
          *   \u2551 OGC:  false_northing                 \u2502        \u2502            \u2502               \u2502               \u2551
          *   \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d
          * }
@@ -190,8 +190,8 @@ public class ParameterFormat extends Tab
          *   \u2502 Latitude of natural origin     \u2502 Double \u2502 Mandatory  \u2502  [-80 \u2026 84]�  \u2502         0.0�  \u2502
          *   \u2502 Longitude of natural origin    \u2502 Double \u2502 Mandatory  \u2502 [-180 \u2026 180]� \u2502         0.0�  \u2502
          *   \u2502 Scale factor at natural origin \u2502 Double \u2502 Mandatory  \u2502    (0 \u2026 \u221e)    \u2502         1.0   \u2502
-         *   \u2502 False easting                  \u2502 Double \u2502 Mandatory  \u2502   (-\u221e \u2026 \u221e) m  \u2502         0.0 m \u2502
-         *   \u2502 False northing                 \u2502 Double \u2502 Mandatory  \u2502   (-\u221e \u2026 \u221e) m  \u2502         0.0 m \u2502
+         *   \u2502 False easting                  \u2502 Double \u2502 Mandatory  \u2502   (\u2212\u221e \u2026 \u221e) m  \u2502         0.0 m \u2502
+         *   \u2502 False northing                 \u2502 Double \u2502 Mandatory  \u2502   (\u2212\u221e \u2026 \u221e) m  \u2502         0.0 m \u2502
          *   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518
          * }
          * </div>

Modified: sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/parameter/Verifier.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/parameter/Verifier.java?rev=1771289&r1=1771288&r2=1771289&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/parameter/Verifier.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/parameter/Verifier.java [UTF-8] Fri Nov 25 11:23:28 2016
@@ -101,10 +101,10 @@ final class Verifier {
      * @param  <T> The type of parameter value. The given {@code value} should typically be an instance of this class.
      *             This is not required by this method signature but is checked by this method implementation.
      *
-     * @param  descriptor The parameter descriptor to check against.
-     * @param  value      The value to check, or {@code null}.
-     * @param  unit       The unit of the value to check, or {@code null}.
-     * @return The given value converted to the descriptor unit if any,
+     * @param  descriptor  the parameter descriptor to check against.
+     * @param  value       the value to check, or {@code null}.
+     * @param  unit        the unit of the value to check, or {@code null}.
+     * @return the given value converted to the descriptor unit if any,
      *         then casted to the descriptor parameterized type.
      * @throws InvalidParameterValueException if the parameter value is invalid.
      */
@@ -232,7 +232,7 @@ final class Verifier {
      * Compares the given value against the given descriptor properties. If the value is valid, returns {@code null}.
      * Otherwise returns an object that can be used for formatting the error message.
      *
-     * @param convertedValue The value <em>converted to the units specified by the descriptor</em>.
+     * @param convertedValue  the value <em>converted to the units specified by the descriptor</em>.
      *        This is not necessarily the user-provided value.
      */
     @SuppressWarnings("unchecked")
@@ -279,7 +279,7 @@ final class Verifier {
      * because the type returned by {@link ParameterDescriptor#getMinimumValue()} and {@code getMaximumValue()}
      * methods (namely {@code Comparable<T>}) does not allow usage with arrays.</div>
      *
-     * @param convertedValue The value <em>converted to the units specified by the descriptor</em>.
+     * @param convertedValue  the value <em>converted to the units specified by the descriptor</em>.
      *        This is not necessarily the user-provided value.
      */
     @SuppressWarnings("unchecked")
@@ -305,15 +305,15 @@ final class Verifier {
      * Converts the information about an "value out of range" error. The range in the error message will be formatted
      * in the unit given by the user, which is not necessarily the same than the unit of the parameter descriptor.
      *
-     * @param converter The conversion from user unit to descriptor unit, or {@code null} if none. This method
-     *        uses the inverse of that conversion for converting the given minimum and maximum values.
+     * @param converter  the conversion from user unit to descriptor unit, or {@code null} if none.
+     *        This method uses the inverse of that conversion for converting the given minimum and maximum values.
      */
     private void convertRange(UnitConverter converter) {
         if (converter != null && !internal && errorKey == Errors.Keys.ValueOutOfRange_4) {
             converter = converter.inverse();
             Object minimumValue = arguments[1];
             Object maximumValue = arguments[2];
-            minimumValue = (minimumValue != null) ? converter.convert(((Number) minimumValue).doubleValue()) : "-\u221e";
+            minimumValue = (minimumValue != null) ? converter.convert(((Number) minimumValue).doubleValue()) : "\u2212\u221e";
             maximumValue = (maximumValue != null) ? converter.convert(((Number) maximumValue).doubleValue()) :  "\u221e";
             arguments[1] = minimumValue;
             arguments[2] = maximumValue;
@@ -340,8 +340,8 @@ final class Verifier {
      * Returns an error message for the error detected by
      * {@link #ensureValidValue(Class, Set, Range, Object)}.
      *
-     * @param name  The parameter name.
-     * @param value The user-supplied value (not necessarily equals to the converted value).
+     * @param name   the parameter name.
+     * @param value  the user-supplied value (not necessarily equals to the converted value).
      */
     String message(final Map<?,?> properties, String name, Object value) {
         final Object index = arguments[0];

Modified: sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterFormatTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterFormatTest.java?rev=1771289&r1=1771288&r2=1771289&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterFormatTest.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterFormatTest.java [UTF-8] Fri Nov 25 11:23:28 2016
@@ -130,8 +130,8 @@ public final strictfp class ParameterFor
                 "\u2502 Latitude of natural origin�    \u2502 Double \u2502 Mandatory  \u2502  [-80 \u2026 84]�  \u2502        40.0�  \u2502\n" +
                 "\u2502 Longitude of natural origin    \u2502 Double \u2502 Mandatory  \u2502 [-180 \u2026 180]� \u2502       -60.0�  \u2502\n" +
                 "\u2502 Scale factor at natural origin \u2502 Double \u2502 Mandatory  \u2502    (0 \u2026 \u221e)    \u2502         1.0   \u2502\n" +
-                "\u2502 False easting                  \u2502 Double \u2502 Optional   \u2502   (-\u221e \u2026 \u221e) m  \u2502      5000.0 m \u2502\n" +
-                "\u2502 False northing                 \u2502 Double \u2502 Optional   \u2502   (-\u221e \u2026 \u221e) m  \u2502     10000.0 m \u2502\n" +
+                "\u2502 False easting                  \u2502 Double \u2502 Optional   \u2502   (\u2212\u221e \u2026 \u221e) m  \u2502      5000.0 m \u2502\n" +
+                "\u2502 False northing                 \u2502 Double \u2502 Optional   \u2502   (\u2212\u221e \u2026 \u221e) m  \u2502     10000.0 m \u2502\n" +
                 "\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n" +
                 "� This parameter is shown for completeness, but should never have a value different than 0 for this projection.\n", text);
     }
@@ -162,7 +162,7 @@ public final strictfp class ParameterFor
                 "\u2502 Latitude of natural origin�    \u2502 Double \u2502  [-80 \u2026 84]�  \u2502  20.0�   \u2502\n" +
                 "\u2502 Longitude of natural origin    \u2502 Double \u2502 [-180 \u2026 180]� \u2502 -60.0�   \u2502\n" +
                 "\u2502 Scale factor at natural origin \u2502 Double \u2502    (0 \u2026 \u221e)    \u2502 0.997    \u2502\n" +
-                "\u2502 False northing                 \u2502 Double \u2502   (-\u221e \u2026 \u221e) m  \u2502  20.0 km \u2502\n" +
+                "\u2502 False northing                 \u2502 Double \u2502   (\u2212\u221e \u2026 \u221e) m  \u2502  20.0 km \u2502\n" +
                 "\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n" +
                 "� This parameter is shown for completeness, but should never have a value different than 0 for this projection.\n", text);
     }
@@ -184,7 +184,7 @@ public final strictfp class ParameterFor
                 "\u2502 Latitude of natural origin�    \u2502 Double \u2502  [-80 \u2026 84]�        \u2502    20�   \u2502\n" +
                 "\u2502 Longitude of natural origin    \u2502 Double \u2502 [-180 \u2026 180]�       \u2502   -60�   \u2502\n" +
                 "\u2502 Scale factor at natural origin \u2502 Double \u2502    (0 \u2026 \u221e)          \u2502 0,997    \u2502\n" +
-                "\u2502 False northing                 \u2502 Double \u2502   (-\u221e \u2026 \u221e) m        \u2502    20 km \u2502\n" +
+                "\u2502 False northing                 \u2502 Double \u2502   (\u2212\u221e \u2026 \u221e) m        \u2502    20 km \u2502\n" +
                 "\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n" +
                 "� This parameter is shown for completeness, but should never have a value different than 0 for this projection.\n", text);
     }
@@ -217,10 +217,10 @@ public final strictfp class ParameterFor
                 "\u2551 EPSG: Scale factor at natural origin (8805) \u2502 Double \u2502 Mandatory  \u2502    (0 \u2026 \u221e)    \u2502         1.0   \u2551\n" +
                 "\u2551 OGC:  scale_factor                          \u2502        \u2502            \u2502               \u2502               \u2551\n" +
                 "\u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562\n" +
-                "\u2551 EPSG: False easting (8806)                  \u2502 Double \u2502 Optional   \u2502   (-\u221e \u2026 \u221e) m  \u2502      5000.0 m \u2551\n" +
+                "\u2551 EPSG: False easting (8806)                  \u2502 Double \u2502 Optional   \u2502   (\u2212\u221e \u2026 \u221e) m  \u2502      5000.0 m \u2551\n" +
                 "\u2551 OGC:  false_easting                         \u2502        \u2502            \u2502               \u2502               \u2551\n" +
                 "\u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562\n" +
-                "\u2551 EPSG: False northing (8807)                 \u2502 Double \u2502 Optional   \u2502   (-\u221e \u2026 \u221e) m  \u2502     10000.0 m \u2551\n" +
+                "\u2551 EPSG: False northing (8807)                 \u2502 Double \u2502 Optional   \u2502   (\u2212\u221e \u2026 \u221e) m  \u2502     10000.0 m \u2551\n" +
                 "\u2551 OGC:  false_northing                        \u2502        \u2502            \u2502               \u2502               \u2551\n" +
                 "\u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d\n" +
                 "� This parameter is shown for completeness, but should never have a value different than 0 for this projection.\n", text);
@@ -252,7 +252,7 @@ public final strictfp class ParameterFor
                 "\u2551 EPSG: Scale factor at natural origin (8805) \u2502 Double \u2502 Mandatory  \u2502    (0 \u2026 \u221e)    \u2502 0.997    \u2551\n" +
                 "\u2551 OGC:  scale_factor                          \u2502        \u2502            \u2502               \u2502          \u2551\n" +
                 "\u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562\n" +
-                "\u2551 EPSG: False northing (8807)                 \u2502 Double \u2502 Optional   \u2502   (-\u221e \u2026 \u221e) m  \u2502  20.0 km \u2551\n" +
+                "\u2551 EPSG: False northing (8807)                 \u2502 Double \u2502 Optional   \u2502   (\u2212\u221e \u2026 \u221e) m  \u2502  20.0 km \u2551\n" +
                 "\u2551 OGC:  false_northing                        \u2502        \u2502            \u2502               \u2502          \u2551\n" +
                 "\u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2567\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d\n" +
                 "� This parameter is shown for completeness, but should never have a value different than 0 for this projection.\n", text);
@@ -326,7 +326,7 @@ public final strictfp class ParameterFor
                 "\u2502 latitude_of_origin� \u2502 Double \u2502  [-80 \u2026 84]�  \u2502  20.0�   \u2502\n" +
                 "\u2502 central_meridian    \u2502 Double \u2502 [-180 \u2026 180]� \u2502 -60.0�   \u2502\n" +
                 "\u2502 scale_factor        \u2502 Double \u2502    (0 \u2026 \u221e)    \u2502 0.997    \u2502\n" +
-                "\u2502 false_northing      \u2502 Double \u2502   (-\u221e \u2026 \u221e) m  \u2502  20.0 km \u2502\n" +
+                "\u2502 false_northing      \u2502 Double \u2502   (\u2212\u221e \u2026 \u221e) m  \u2502  20.0 km \u2502\n" +
                 "\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n" +
                 "� This parameter is shown for completeness, but should never have a value different than 0 for this projection.\n", text);
     }

Modified: sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticObjectVerifier.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticObjectVerifier.java?rev=1771289&r1=1771288&r2=1771289&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticObjectVerifier.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/GeodeticObjectVerifier.java [UTF-8] Fri Nov 25 11:23:28 2016
@@ -293,8 +293,8 @@ public final strictfp class GeodeticObje
      *     <td>{@link Units#METRE}</td>
      *     <td>{@link Units#METRE}</td></tr>
      * <tr><td>Axes range</td>
-     *     <td>[-\u221e \u2026 \u221e]</td>
-     *     <td>[-\u221e \u2026 \u221e]</td></tr>
+     *     <td>[\u2212\u221e \u2026 \u221e]</td>
+     *     <td>[\u2212\u221e \u2026 \u221e]</td></tr>
      * <tr><td>Axes range meaning</td>
      *     <td>{@code null}</td>
      *     <td>{@code null}</td>

Modified: sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ConformalProjectionTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ConformalProjectionTest.java?rev=1771289&r1=1771288&r2=1771289&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ConformalProjectionTest.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/ConformalProjectionTest.java [UTF-8] Fri Nov 25 11:23:28 2016
@@ -65,8 +65,8 @@ public final strictfp class ConformalPro
         assertEquals("Inverse 0 m",      0, PI/2 - 2*atan(exp(0)),            TOLERANCE);
         assertEquals("Forward 90�S",     NEGATIVE_INFINITY, log(tan(0)),      TOLERANCE);
         assertEquals("Forward (90+\u03b5)�S", NaN,  log(tan(-nextUp(0))),          TOLERANCE);
-        assertEquals("Inverse -\u221e",       PI/2, atan(exp(-NEGATIVE_INFINITY)), TOLERANCE);
-        assertEquals("Inverse -\u221e appr.", PI/2, atan(exp(LN_INFINITY + 1)),    TOLERANCE);
+        assertEquals("Inverse \u2212\u221e",       PI/2, atan(exp(-NEGATIVE_INFINITY)), TOLERANCE);
+        assertEquals("Inverse \u2212\u221e appr.", PI/2, atan(exp(LN_INFINITY + 1)),    TOLERANCE);
         /*
          * tan(PI/2) do not produces positive infinity as we would expect, because there is no
          * exact representation of PI in base 2.  Experiments show that we get some high value
@@ -258,8 +258,8 @@ public final strictfp class ConformalPro
         assertEquals("\u03c6( 0)  =  90�",  PI/2,   \u03c6(0),                 tolerance);
         assertEquals("\u03c6(-\u03b5)  \u2192  90�",  PI/2,   \u03c6(-MIN_VALUE),        tolerance);
         assertEquals("\u03c6(-1)  = 180�",  PI,     \u03c6(-1),                tolerance);
-        assertEquals("\u03c6(-\u221e)  = 270�",  PI*1.5, \u03c6(-MAX_VALUE),        tolerance);
-        assertEquals("\u03c6(-\u221e)  = 270�",  PI*1.5, \u03c6(NEGATIVE_INFINITY), tolerance);
+        assertEquals("\u03c6(\u2212\u221e)  = 270�",  PI*1.5, \u03c6(-MAX_VALUE),        tolerance);
+        assertEquals("\u03c6(\u2212\u221e)  = 270�",  PI*1.5, \u03c6(NEGATIVE_INFINITY), tolerance);
         /*
          * Using t(\u03c6) as a reference.
          */

Modified: sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/LambertConicConformalTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/LambertConicConformalTest.java?rev=1771289&r1=1771288&r2=1771289&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/LambertConicConformalTest.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/LambertConicConformalTest.java [UTF-8] Fri Nov 25 11:23:28 2016
@@ -135,7 +135,7 @@ public final strictfp class LambertConic
         assertEquals ("Inverse +1",     0, inverseTransform(+1),   NORMALIZED_TOLERANCE);
         assertEquals ("Inverse -1",     0, inverseTransform(-1),   NORMALIZED_TOLERANCE);
         assertEquals ("Inverse +\u221e", +PI/2, inverseTransform(INF),  NORMALIZED_TOLERANCE);
-        assertEquals ("Inverse -\u221e", +PI/2, inverseTransform(-INF), NORMALIZED_TOLERANCE);
+        assertEquals ("Inverse \u2212\u221e", +PI/2, inverseTransform(-INF), NORMALIZED_TOLERANCE);
 
         // Like the north case, but with sign inversed.
         createNormalizedProjection(((LambertConicConformal) transform).eccentricity != 0, -40);
@@ -154,7 +154,7 @@ public final strictfp class LambertConic
         assertEquals ("Not a number", NaN, inverseTransform(NaN),  NORMALIZED_TOLERANCE);
         assertEquals ("Inverse 0",  -PI/2, inverseTransform( 0),   NORMALIZED_TOLERANCE);
         assertEquals ("Inverse +\u221e", +PI/2, inverseTransform(INF),  NORMALIZED_TOLERANCE);
-        assertEquals ("Inverse -\u221e", +PI/2, inverseTransform(-INF), NORMALIZED_TOLERANCE);
+        assertEquals ("Inverse \u2212\u221e", +PI/2, inverseTransform(-INF), NORMALIZED_TOLERANCE);
     }
 
     /**

Modified: sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/MercatorTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/MercatorTest.java?rev=1771289&r1=1771288&r2=1771289&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/MercatorTest.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/projection/MercatorTest.java [UTF-8] Fri Nov 25 11:23:28 2016
@@ -150,8 +150,8 @@ public final strictfp class MercatorTest
         assertEquals ("Inverse 0 m",      0,     inverseTransform(0),                  tolerance);
         assertEquals ("Inverse +\u221e",       +PI/2, inverseTransform(POSITIVE_INFINITY),  tolerance);
         assertEquals ("Inverse +\u221e appr.", +PI/2, inverseTransform(LN_INFINITY + 1),    tolerance);
-        assertEquals ("Inverse -\u221e",       -PI/2, inverseTransform(NEGATIVE_INFINITY),  tolerance);
-        assertEquals ("Inverse -\u221e appr.", -PI/2, inverseTransform(-(LN_INFINITY + 1)), tolerance);
+        assertEquals ("Inverse \u2212\u221e",       -PI/2, inverseTransform(NEGATIVE_INFINITY),  tolerance);
+        assertEquals ("Inverse \u2212\u221e appr.", -PI/2, inverseTransform(-(LN_INFINITY + 1)), tolerance);
     }
 
     /**

Modified: sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/math/Fraction.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/math/Fraction.java?rev=1771289&r1=1771288&r2=1771289&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/math/Fraction.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/math/Fraction.java [UTF-8] Fri Nov 25 11:23:28 2016
@@ -208,7 +208,7 @@ public final class Fraction extends Numb
      * Returns the simplified result of dividing this fraction by the given fraction.
      *
      * @param  other  the fraction by which to divide this fraction.
-     * @return the simplified result of {@code this} � {@code other}.
+     * @return the simplified result of {@code this} \u2215 {@code other}.
      * @throws ArithmeticException if the result overflows.
      */
     public Fraction divide(final Fraction other) {

Modified: sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/ConventionalUnit.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/ConventionalUnit.java?rev=1771289&r1=1771288&r2=1771289&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/ConventionalUnit.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/ConventionalUnit.java [UTF-8] Fri Nov 25 11:23:28 2016
@@ -391,7 +391,7 @@ final class ConventionalUnit<Q extends Q
      * Returns the quotient of this unit with the one specified.
      *
      * @param  divisor  the unit divisor.
-     * @return {@code this} � {@code divisor}
+     * @return {@code this} \u2215 {@code divisor}
      */
     @Override
     public Unit<?> divide(final Unit<?> divisor) {

Modified: sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/RangeFormat.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/RangeFormat.java?rev=1771289&r1=1771288&r2=1771289&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/RangeFormat.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/RangeFormat.java [UTF-8] Fri Nov 25 11:23:28 2016
@@ -589,7 +589,7 @@ public class RangeFormat extends Format
             int startPosition = toAppendTo.length();
             if (value == null) {
                 switch (field) {
-                    case MIN_VALUE_FIELD: toAppendTo.append(minusSign);             // Fall through
+                    case MIN_VALUE_FIELD: toAppendTo.append(minusSign != '-' ? minusSign : '\u2212');    // Fall through
                     case MAX_VALUE_FIELD: toAppendTo.append(infinity); break;
                 }
             } else {
@@ -770,9 +770,8 @@ public class RangeFormat extends Format
     {
         final int length = source.length();
         /*
-         * Skip leading whitespace and find the first non-blank character.  It is usually
-         * an opening bracket, except if minimal and maximal values are the same in which
-         * case the brackets may be omitted.
+         * Skip leading whitespace and find the first non-blank character. It is usually an opening bracket,
+         * except if minimal and maximal values are the same in which case the brackets may be omitted.
          */
         int index, c;
         for (index = pos.getIndex(); ; index += Character.charCount(c)) {
@@ -787,9 +786,8 @@ public class RangeFormat extends Format
         final boolean isMinIncluded, isMaxIncluded;
         if (!isOpen(c)) {
             /*
-             * No bracket, or curly bracket. We have eigher an empty range (as in "{}")
-             * or a single value for the range. The braces are optional for single value.
-             * In other words, this block parses all of the following cases:
+             * No bracket, or curly bracket. We have eigher an empty range (as in "{}") or a single value for the range.
+             * The braces are optional for single value. In other words, this block parses all of the following cases:
              *
              *  - {}
              *  - {value}
@@ -838,13 +836,12 @@ public class RangeFormat extends Format
             }
         } else {
             /*
-             * We found an opening bracket. Skip the whitespaces. If the next
-             * character is a closing bracket, then we have an empty range.
-             * The later case is an extension to the standard format, since
-             * empty ranges are usually represented by {} instead than [].
+             * We found an opening bracket. Skip the whitespaces. If the next character is a closing bracket,
+             * then we have an empty range. The later case is an extension to the standard format since empty
+             * ranges are usually represented by {} instead than [].
              */
             isMinIncluded = (c == openInclusive);
-            do { // Skip whitespaces.
+            do {                                            // Skip whitespaces.
                 index += Character.charCount(c);
                 if (index >= length) {
                     pos.setErrorIndex(length);
@@ -859,16 +856,16 @@ public class RangeFormat extends Format
                 index += Character.charCount(c);
             } else {
                 /*
-                 * At this point, we have determined that the range is non-empty and there
-                 * is at least one value to parse. First, parse the minimal value. If we
-                 * fail to parse, check if it was the infinity value (note that infinity
-                 * should have been parsed successfully if the format is DecimalFormat).
+                 * At this point, we have determined that the range is non-empty and there is at least one value to parse.
+                 * First, parse the minimal value. If we fail to parse, check if it was the infinity value. Note that "-\u221e"
+                 * and "\u221e" should have been parsed successfully if the format is DecimalFormat, but not necessarily "\u2212\u221e".
+                 * The difference is in the character used for the minus sign (ASCII hyphen versus Unicode minus sign).
                  */
                 pos.setIndex(index);
                 int savedIndex = index;
                 Object value = elementFormat.parseObject(source, pos);
                 if (value == null) {
-                    if (c == minusSign) {
+                    if (c == minusSign || c == '\u2212') {
                         index += Character.charCount(c);
                     }
                     if (!source.regionMatches(index, infinity, 0, infinity.length())) {
@@ -879,11 +876,10 @@ public class RangeFormat extends Format
                 pos.setErrorIndex(savedIndex);              // In case of failure during the conversion.
                 minValue = convert(value);
                 /*
-                 * Parsing of minimal value succeed and its type is valid. Now look for the
-                 * separator. If it is not present, then assume that we have a single value
-                 * for the range. The default RangeFormat implementation does not format
-                 * brackets in such case (see the "No bracket" case above), but we make the
-                 * parser tolerant to the case where the brackets are present.
+                 * Parsing of 'minValue' succeed and its type is valid. Now look for the separator. If it is not present,
+                 * then assume that we have a single value for the range. The default RangeFormat implementation does not
+                 * format brackets in such case (see the "No bracket" case above), but we make the parser tolerant to the
+                 * case where the brackets are present.
                  */
                 for (index = pos.getIndex(); ; index += Character.charCount(c)) {
                     if (index >= length) {
@@ -904,6 +900,10 @@ public class RangeFormat extends Format
                         c = source.codePointAt(index);
                         if (!Character.isWhitespace(c)) break;
                     }
+                    /*
+                     * Now parse the maximum value. A special case is applied for infinity value
+                     * in a similar way than we did for the minimal value.
+                     */
                     pos.setIndex(index);
                     value = elementFormat.parseObject(source, pos);
                     if (value == null) {
@@ -915,9 +915,8 @@ public class RangeFormat extends Format
                     pos.setErrorIndex(index);               // In case of failure during the conversion.
                     maxValue = convert(value);
                     /*
-                     * Skip one last time the whitespaces. The check for the closing bracket
-                     * (which is mandatory) is performed outside the "if" block since it is
-                     * common to the two "if ... else" cases.
+                     * Skip one last time the whitespaces. The check for the closing bracket (which is mandatory)
+                     * is performed outside the "if" block since it is common to the two "if ... else" cases.
                      */
                     for (index = pos.getIndex(); ; index += Character.charCount(c)) {
                         if (index >= length) {
@@ -972,8 +971,8 @@ public class RangeFormat extends Format
                 min  = Numbers.cast(min, type);
                 max  = Numbers.cast(max, type);
             }
-            if (min.doubleValue() == Double.NEGATIVE_INFINITY) min = null;
-            if (max.doubleValue() == Double.POSITIVE_INFINITY) max = null;
+            if (min != null && min.doubleValue() == Double.NEGATIVE_INFINITY) min = null;
+            if (max != null && max.doubleValue() == Double.POSITIVE_INFINITY) max = null;
             if (unit != null) {
                 final MeasurementRange<?> range = new MeasurementRange(type, min, isMinIncluded, max, isMaxIncluded, unit);
                 return range;

Modified: sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/SystemUnit.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/SystemUnit.java?rev=1771289&r1=1771288&r2=1771289&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/SystemUnit.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/SystemUnit.java [UTF-8] Fri Nov 25 11:23:28 2016
@@ -398,7 +398,7 @@ final class SystemUnit<Q extends Quantit
      * Returns the quotient of this unit with the one specified.
      *
      * @param  divisor  the unit divisor.
-     * @return {@code this} � {@code divisor}
+     * @return {@code this} \u2215 {@code divisor}
      */
     @Override
     public Unit<?> divide(final Unit<?> divisor) {

Modified: sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java?rev=1771289&r1=1771288&r2=1771289&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java [UTF-8] Fri Nov 25 11:23:28 2016
@@ -857,6 +857,7 @@ public class UnitFormat extends Format i
                 case '\u22c5': // Fallthrough
                 case '�': next = MULTIPLY; break;
                 case '�':
+                case '\u2044': // Fraction slash
                 case '/':
                 case '\u2215': next = DIVIDE; break;
                 default:  continue;

Modified: sis/branches/JDK8/core/sis-utility/src/test/java/org/apache/sis/measure/RangeFormatTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-utility/src/test/java/org/apache/sis/measure/RangeFormatTest.java?rev=1771289&r1=1771288&r2=1771289&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-utility/src/test/java/org/apache/sis/measure/RangeFormatTest.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-utility/src/test/java/org/apache/sis/measure/RangeFormatTest.java [UTF-8] Fri Nov 25 11:23:28 2016
@@ -144,7 +144,7 @@ public final strictfp class RangeFormatT
         assertEquals("maxPos.endIndex",   1, maxPos.getEndIndex());
 
         // Negative infinity
-        assertEquals("(-\u221e \u2026 30]", format(NumberRange.create(Double.NEGATIVE_INFINITY, true, 30, true)));
+        assertEquals("(\u2212\u221e \u2026 30]", format(NumberRange.create(Double.NEGATIVE_INFINITY, true, 30, true)));
         assertEquals("minPos.beginIndex", 1, minPos.getBeginIndex());
         assertEquals("minPos.endIndex",   3, minPos.getEndIndex());
         assertEquals("maxPos.beginIndex", 6, maxPos.getBeginIndex());
@@ -158,7 +158,7 @@ public final strictfp class RangeFormatT
         assertEquals("maxPos.endIndex",   7, maxPos.getEndIndex());
 
         // Positive infinities
-        assertEquals("(-\u221e \u2026 \u221e)", format(NumberRange.create(Double.NEGATIVE_INFINITY, true, Double.POSITIVE_INFINITY, true)));
+        assertEquals("(\u2212\u221e \u2026 \u221e)", format(NumberRange.create(Double.NEGATIVE_INFINITY, true, Double.POSITIVE_INFINITY, true)));
         assertEquals("minPos.beginIndex", 1, minPos.getBeginIndex());
         assertEquals("minPos.endIndex",   3, minPos.getEndIndex());
         assertEquals("maxPos.beginIndex", 6, maxPos.getBeginIndex());
@@ -172,7 +172,7 @@ public final strictfp class RangeFormatT
         assertEquals("maxPos.endIndex",   7, maxPos.getEndIndex());
 
         // Negative infinity with integers
-        assertEquals("(-\u221e \u2026 40]", format(new NumberRange<>(Integer.class, null, true, 40, true)));
+        assertEquals("(\u2212\u221e \u2026 40]", format(new NumberRange<>(Integer.class, null, true, 40, true)));
         assertEquals("minPos.beginIndex", 1, minPos.getBeginIndex());
         assertEquals("minPos.endIndex",   3, minPos.getEndIndex());
         assertEquals("maxPos.beginIndex", 6, maxPos.getBeginIndex());
@@ -247,6 +247,7 @@ public final strictfp class RangeFormatT
 
         assertEquals(NumberRange.create(-10.0, true,             20.0, true), parse("[-10 \u2026 20]" ));
         assertEquals(NumberRange.create(NEGATIVE_INFINITY, true, 30.0, true), parse("[-\u221e \u2026 30]"));
+        assertEquals(NumberRange.create(NEGATIVE_INFINITY, true, 30.0, true), parse("[\u2212\u221e \u2026 30]"));
         assertEquals(NumberRange.create(50.0, true, POSITIVE_INFINITY, true), parse("[50 \u2026 \u221e]"));
     }
 
@@ -334,7 +335,7 @@ public final strictfp class RangeFormatT
         it    = format.formatToCharacterIterator(range);
         text  = it.toString();
         findYears(it, RangeFormat.Field.MAX_VALUE, maxPos);
-        assertEquals("(-\u221e \u2026 01/01/90 00:00]", text);
+        assertEquals("(\u2212\u221e \u2026 01/01/90 00:00]", text);
         assertEquals(12, maxPos.getBeginIndex());
         assertEquals(14, maxPos.getEndIndex());
         assertEquals(range, parse(text));