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 3e791ee56c04ccffb3d8df0d46daeb95b6a26c5a
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Wed Apr 6 10:51:05 2022 +0200

    English spelling: "there is" → "there are" when the noun is plural.
---
 .../java/org/apache/sis/gui/coverage/IsolineRenderer.java    |  4 ++--
 .../org/apache/sis/gui/coverage/StyledRenderingData.java     |  2 +-
 .../main/java/org/apache/sis/gui/dataset/ExpandableList.java |  2 +-
 .../main/java/org/apache/sis/gui/dataset/FeatureList.java    |  2 +-
 .../src/main/java/org/apache/sis/gui/map/MapCanvasAWT.java   |  2 +-
 .../src/main/java/org/apache/sis/gui/map/StatusBar.java      |  2 +-
 .../java/org/apache/sis/gui/referencing/AuthorityCodes.java  |  2 +-
 .../src/main/java/org/apache/sis/internal/gui/Resources.java |  2 +-
 .../java/org/apache/sis/internal/gui/control/ColorCell.java  |  2 +-
 .../main/java/org/apache/sis/coverage/SampleDimension.java   |  2 +-
 .../src/main/java/org/apache/sis/coverage/ToNaN.java         |  2 +-
 .../main/java/org/apache/sis/coverage/grid/GridExtent.java   |  2 +-
 .../main/java/org/apache/sis/coverage/grid/GridGeometry.java |  6 +++---
 .../java/org/apache/sis/feature/CharacteristicTypeMap.java   |  2 +-
 .../java/org/apache/sis/feature/DefaultAssociationRole.java  |  4 ++--
 .../src/main/java/org/apache/sis/feature/FeatureFormat.java  |  2 +-
 .../src/main/java/org/apache/sis/image/ComputedImage.java    |  4 ++--
 .../src/main/java/org/apache/sis/image/ComputedTiles.java    |  2 +-
 .../src/main/java/org/apache/sis/image/ImageProcessor.java   | 12 ++++++------
 .../src/main/java/org/apache/sis/image/PixelIterator.java    |  2 +-
 .../main/java/org/apache/sis/image/StatisticsCalculator.java |  2 +-
 .../src/main/java/org/apache/sis/image/Visualization.java    |  4 ++--
 .../main/java/org/apache/sis/index/tree/NodeIterator.java    |  4 ++--
 .../apache/sis/internal/coverage/j2d/ColorModelFactory.java  |  2 +-
 .../org/apache/sis/internal/coverage/j2d/TileOpExecutor.java |  2 +-
 .../org/apache/sis/internal/feature/GeometryWrapper.java     |  2 +-
 .../main/java/org/apache/sis/internal/feature/Resources.java |  2 +-
 .../apache/sis/internal/feature/SpatialOperationContext.java |  2 +-
 .../org/apache/sis/internal/feature/j2d/PathBuilder.java     |  2 +-
 .../java/org/apache/sis/internal/feature/j2d/Polyline.java   |  2 +-
 .../apache/sis/internal/feature/jts/PathIteratorAdapter.java |  4 ++--
 .../org/apache/sis/internal/filter/FunctionRegister.java     |  2 +-
 .../apache/sis/internal/processing/image/IsolineTracer.java  |  4 ++--
 .../org/apache/sis/internal/processing/image/Isolines.java   |  2 +-
 .../apache/sis/feature/builder/AttributeTypeBuilderTest.java |  2 +-
 .../sis/feature/builder/CharacteristicTypeBuilderTest.java   |  2 +-
 .../java/org/apache/sis/internal/jaxb/TypeRegistration.java  |  2 +-
 .../java/org/apache/sis/internal/jaxb/gco/GO_DateTime.java   |  4 ++--
 .../java/org/apache/sis/internal/metadata/Resources.java     |  2 +-
 .../org/apache/sis/internal/metadata/sql/SQLUtilities.java   |  2 +-
 .../org/apache/sis/internal/metadata/sql/ScriptRunner.java   |  2 +-
 .../org/apache/sis/metadata/sql/IdentifierGenerator.java     |  2 +-
 .../src/main/java/org/apache/sis/xml/TransformingReader.java |  2 +-
 .../src/main/java/org/apache/sis/xml/TransformingWriter.java |  2 +-
 .../src/main/java/org/apache/sis/portrayal/Canvas.java       |  8 ++++----
 .../java/org/apache/sis/internal/gazetteer/Resources.java    |  2 +-
 .../sis/internal/referencing/CoordinateOperations.java       |  2 +-
 .../java/org/apache/sis/internal/referencing/Resources.java  |  2 +-
 .../sis/internal/referencing/provider/AbstractProvider.java  |  2 +-
 .../src/main/java/org/apache/sis/io/wkt/Element.java         |  6 +++---
 .../src/main/java/org/apache/sis/io/wkt/Formatter.java       |  2 +-
 .../java/org/apache/sis/io/wkt/GeodeticObjectParser.java     |  8 ++++----
 .../src/main/java/org/apache/sis/io/wkt/StoredTree.java      |  4 ++--
 .../src/main/java/org/apache/sis/io/wkt/WKTDictionary.java   |  2 +-
 .../src/main/java/org/apache/sis/referencing/Builder.java    |  8 ++++----
 .../java/org/apache/sis/referencing/NamedIdentifier.java     |  2 +-
 .../org/apache/sis/referencing/crs/DefaultProjectedCRS.java  |  2 +-
 .../main/java/org/apache/sis/referencing/cs/AbstractCS.java  |  2 +-
 .../org/apache/sis/referencing/cs/CoordinateSystems.java     |  4 ++--
 .../referencing/operation/CoordinateOperationRegistry.java   |  2 +-
 .../sis/referencing/operation/projection/Orthographic.java   |  2 +-
 .../main/java/org/apache/sis/internal/system/Fallback.java   |  2 +-
 .../java/org/apache/sis/internal/util/AbstractIterator.java  |  2 +-
 .../java/org/apache/sis/internal/util/CollectionsExt.java    |  2 +-
 .../src/main/java/org/apache/sis/math/MathFunctions.java     |  2 +-
 .../src/main/java/org/apache/sis/math/Vector.java            |  2 +-
 .../org/apache/sis/measure/FormattedCharacterIterator.java   |  2 +-
 .../src/main/java/org/apache/sis/measure/Scalar.java         |  2 +-
 .../src/main/java/org/apache/sis/measure/UnitFormat.java     |  2 +-
 .../src/main/java/org/apache/sis/util/CharSequences.java     |  4 ++--
 .../src/main/java/org/apache/sis/util/collection/Cache.java  |  2 +-
 .../src/main/java/org/apache/sis/util/resources/Errors.java  |  2 +-
 .../org/apache/sis/util/resources/IndexedResourceBundle.java |  6 +++---
 .../main/java/org/apache/sis/util/resources/Messages.java    |  2 +-
 .../main/java/org/apache/sis/util/resources/Vocabulary.java  |  2 +-
 .../sis/storage/landsat/doc-files/MetadataMapping.html       |  2 +-
 .../main/java/org/apache/sis/internal/geotiff/Resources.java |  2 +-
 .../src/main/java/org/apache/sis/storage/geotiff/Reader.java |  2 +-
 .../apache/sis/internal/storage/inflater/CCITTRLETest.java   |  2 +-
 .../java/org/apache/sis/storage/geotiff/GeoKeysTest.java     |  4 ++--
 .../main/java/org/apache/sis/internal/netcdf/CRSBuilder.java |  2 +-
 .../main/java/org/apache/sis/internal/netcdf/FeatureSet.java |  2 +-
 .../java/org/apache/sis/internal/netcdf/RasterResource.java  |  2 +-
 .../main/java/org/apache/sis/internal/netcdf/Resources.java  |  2 +-
 .../org/apache/sis/internal/shapefile/jdbc/AbstractJDBC.java |  2 +-
 .../org/apache/sis/internal/sql/feature/FeatureIterator.java |  2 +-
 .../org/apache/sis/internal/sql/feature/InfoStatements.java  |  2 +-
 .../java/org/apache/sis/internal/sql/feature/Relation.java   |  2 +-
 .../java/org/apache/sis/internal/sql/feature/Resources.java  |  2 +-
 .../main/java/org/apache/sis/internal/sql/feature/Table.java |  4 ++--
 .../org/apache/sis/internal/sql/postgis/ExtentEstimator.java |  4 ++--
 .../main/java/org/apache/sis/internal/storage/Resources.java |  2 +-
 .../java/org/apache/sis/internal/storage/URIDataStore.java   |  2 +-
 .../org/apache/sis/internal/storage/csv/FeatureIterator.java |  6 +++---
 .../sis/internal/storage/csv/MovingFeatureIterator.java      |  2 +-
 .../src/main/java/org/apache/sis/storage/DataStore.java      |  2 +-
 .../main/java/org/apache/sis/storage/DataStoreProvider.java  |  2 +-
 .../src/main/java/org/apache/sis/storage/FeatureQuery.java   |  2 +-
 .../src/main/java/org/apache/sis/storage/Resource.java       |  2 +-
 .../org/apache/sis/storage/WritableGridCoverageResource.java |  4 ++--
 .../java/org/apache/sis/storage/event/StoreListeners.java    |  8 ++++----
 .../src/test/java/org/apache/sis/storage/DataStoreMock.java  |  2 +-
 .../java/org/apache/sis/test/storage/SubsampledImage.java    |  2 +-
 .../java/org/apache/sis/internal/storage/gpx/Reader.java     |  4 ++--
 .../sis/internal/storage/xml/stream/StaxStreamReader.java    |  4 ++--
 105 files changed, 147 insertions(+), 147 deletions(-)

diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/IsolineRenderer.java
 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/IsolineRenderer.java
index d903b714d3..63917179df 100644
--- 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/IsolineRenderer.java
+++ 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/IsolineRenderer.java
@@ -83,7 +83,7 @@ final class IsolineRenderer {
     }
 
     /**
-     * Returns {@code true} if there is no isoline to show.
+     * Returns {@code true} if there are no isolines to show.
      * This method shall be invoked in JavaFX thread.
      */
     private boolean isEmpty() {
@@ -296,7 +296,7 @@ final class IsolineRenderer {
      * @param  data       the source of data. Used only if there is new 
isolines to compute.
      * @param  gridToCRS  transform from pixel coordinates to geometry 
coordinates, or {@code null} if none.
      *                    Integer source coordinates are located at pixel 
centers.
-     * @return result of isolines generation, or {@code null} if there is no 
isoline to compute.
+     * @return result of isolines generation, or {@code null} if there are no 
isolines to compute.
      * @throws TransformException if an interpolated point can not be 
transformed using the given transform.
      */
     @SuppressWarnings("UseOfSystemOutOrSystemErr")      // Used only for 
debugging.
diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/StyledRenderingData.java
 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/StyledRenderingData.java
index 30b02f3def..0709fe82c2 100644
--- 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/StyledRenderingData.java
+++ 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/StyledRenderingData.java
@@ -85,7 +85,7 @@ final class StyledRenderingData extends RenderingData {
      * method uses some image computation results).
      *
      * @param  isolines  value of {@link IsolineRenderer#prepare()}, or {@code 
null} if none.
-     * @return result of isolines generation, or {@code null} if there is no 
isoline to compute.
+     * @return result of isolines generation, or {@code null} if there are no 
isolines to compute.
      * @throws TransformException if an interpolated point can not be 
transformed using the given transform.
      */
     final Future<Isolines[]> generate(final IsolineRenderer.Snapshot[] 
isolines) throws TransformException {
diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ExpandableList.java
 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ExpandableList.java
index 7c6a06b230..ebce5540d6 100644
--- 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ExpandableList.java
+++ 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ExpandableList.java
@@ -126,7 +126,7 @@ final class ExpandableList extends 
TransformationList<Feature,Feature>
      * it is caller's responsibility to perform those tasks.
      *
      * <div class="note"><b>Note:</b> we return {@code null} instead of an 
empty list if
-     * there is no removed element because we want to force callers to perform 
a null check.
+     * there are no removed elements because we want to force callers to 
perform a null check.
      * The reason is that if there was no expansion rows, then {@link 
#indexOfExpanded} has an
      * invalid value and using that value in {@link #nextRemove(int, List)} 
may be dangerous.
      * A {@link NullPointerException} would intercept that error sooner.</div>
diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/FeatureList.java
 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/FeatureList.java
index 5c1ef2c9b9..99a45768bd 100644
--- 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/FeatureList.java
+++ 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/FeatureList.java
@@ -265,7 +265,7 @@ final class FeatureList extends ObservableListBase<Feature> 
{
      * this list that the loading process is finished and no more elements 
will be added.
      *
      * @param  next  the loader for next {@value FeatureLoader#PAGE_SIZE} 
features,
-     *               or {@code null} if there is no more features to load.
+     *               or {@code null} if there are no more features to load.
      */
     final void setNextPage(final FeatureLoader next) {
         assert Platform.isFxApplicationThread();
diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/map/MapCanvasAWT.java 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/map/MapCanvasAWT.java
index 820393eaf8..5f81b6047e 100644
--- 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/map/MapCanvasAWT.java
+++ 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/map/MapCanvasAWT.java
@@ -359,7 +359,7 @@ public abstract class MapCanvasAWT extends MapCanvas {
     }
 
     /**
-     * Background tasks for creating a new {@link BufferedImage}. This task is 
invoked when there is no
+     * Background tasks for creating a new {@link BufferedImage}. This task is 
invoked when there are no
      * previous resources that we can recycle, either because they have never 
been created yet or because
      * they are not suitable anymore (for example because the image size 
changed).
      */
diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/map/StatusBar.java 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/map/StatusBar.java
index bb8570815d..1f2496a503 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/map/StatusBar.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/map/StatusBar.java
@@ -355,7 +355,7 @@ public class StatusBar extends Widget implements 
EventHandler<MouseEvent> {
 
     /**
      * The object providing sample values under cursor position.
-     * The property value may be {@code null} if there is no sample values to 
format.
+     * The property value may be {@code null} if there are no sample values to 
format.
      * If non-null, the text provided by this object will appear at the right 
of the coordinates.
      *
      * <div class="note"><b>API note:</b>
diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/AuthorityCodes.java
 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/AuthorityCodes.java
index 280d6577bd..f8b3e61d69 100644
--- 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/AuthorityCodes.java
+++ 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/AuthorityCodes.java
@@ -446,7 +446,7 @@ final class AuthorityCodes extends ObservableListBase<Code>
                 /*
                  * At this point we loaded all authority codes. If there is 
some remaining codes,
                  * returns them immediately for allowing the user interface to 
be updated quickly.
-                 * If there is no more codes to return, wait a little bit for 
giving a chance to
+                 * If there are no more codes to return, wait a little bit for 
giving a chance to
                  * the `toDescribe` list to be populated with more requests, 
then process them.
                  */
                 if (codes.isEmpty()) {
diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.java
 
b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.java
index 61dbcf42bd..5877c7c3a3 100644
--- 
a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.java
+++ 
b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.java
@@ -417,7 +417,7 @@ public final class Resources extends IndexedResourceBundle {
      * Constructs a new resource bundle loading data from the given UTF file.
      *
      * @param resources  the path of the binary file containing resources, or 
{@code null} if
-     *        there is no resources. The resources may be a file or an entry 
in a JAR file.
+     *        there are no resources. The resources may be a file or an entry 
in a JAR file.
      */
     public Resources(final URL resources) {
         super(resources);
diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ColorCell.java
 
b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ColorCell.java
index dc3f011164..4221bbfe02 100644
--- 
a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ColorCell.java
+++ 
b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ColorCell.java
@@ -76,7 +76,7 @@ final class ColorCell<S> extends TableCell<S,ColorRamp> 
implements EventHandler<
      * The type of color ramp as determined by {@link 
ColorColumnHandler#applyColors(Object, ColorRamp)}.
      * This is updated by {@link #updateItem(ColorRamp, boolean)} when the 
value changes and stored for
      * keeping that value stable (this class does not support mutable colors 
type).
-     * May be {@code null} if there is no value in the row of this cell.
+     * May be {@code null} if there are no values in the row of this cell.
      */
     private ColorRamp.Type type;
 
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/coverage/SampleDimension.java 
b/core/sis-feature/src/main/java/org/apache/sis/coverage/SampleDimension.java
index 9aad5130a0..700eddbf24 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/coverage/SampleDimension.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/coverage/SampleDimension.java
@@ -179,7 +179,7 @@ public class SampleDimension implements Serializable {
         this.name       = name;
         this.background = background;
         this.categories = list;
-        if (list.converse.range == null) {                  // Case where 
there is no quantitative category.
+        if (list.converse.range == null) {                  // Case where 
there are no quantitative categories.
             transferFunction = null;
             converse = null;
         } else if (list == list.converse) {                 // Case where 
values are already converted.
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/ToNaN.java 
b/core/sis-feature/src/main/java/org/apache/sis/coverage/ToNaN.java
index f0c5c82bc5..42f7486584 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/ToNaN.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/ToNaN.java
@@ -67,7 +67,7 @@ final class ToNaN extends HashSet<Integer> implements 
DoubleToIntFunction {
 
     /**
      * Mapping from sample values to ordinal values to be supplied to {@link 
MathFunctions#toNanFloat(int)}.
-     * That mapping shall ensure that there is no ordinal value collision 
between different categories in
+     * That mapping shall ensure that there are no ordinal value collisions 
between different categories in
      * the same {@link SampleDimension}.
      *
      * @param  value  a real number in the {@link Category#range} sample value 
range.
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridExtent.java 
b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridExtent.java
index 1d1e98890b..90430252dc 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridExtent.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridExtent.java
@@ -887,7 +887,7 @@ public class GridExtent implements GridEnvelope, 
LenientComparable, Serializable
      *   <li>{@code getAxisType(3)} may return {@link 
DimensionNameType#TIME}.</li>
      * </ul>
      *
-     * Above are only examples; there is no constraint on axis order. In 
particular grid axes do not need to be in the same
+     * Above are only examples; there are no constraints on axis order. In 
particular grid axes do not need to be in the same
      * order than the corresponding {@linkplain 
GridGeometry#getCoordinateReferenceSystem() coordinate reference system} axes.
      *
      * @param  index  the dimension for which to obtain the axis type.
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridGeometry.java 
b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridGeometry.java
index 1987d8ae09..16c57d9f77 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridGeometry.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridGeometry.java
@@ -487,7 +487,7 @@ public class GridGeometry implements LenientComparable, 
Serializable {
      *
      * <p>The given envelope shall encompass all cell surfaces, from the left 
border of leftmost cell to the right border
      * of the rightmost cell and similarly along other axes. This constructor 
tries to store a geospatial envelope close
-     * to the specified envelope, but there is no guarantees that the envelope 
returned by {@link #getEnvelope()} will be
+     * to the specified envelope, but there is no guarantee that the envelope 
returned by {@link #getEnvelope()} will be
      * equal to the given envelope. The envelope stored in the new {@code 
GridGeometry} may be slightly smaller, larger or
      * shifted because the floating point values used in geospatial envelope 
can not always be mapped to the integer
      * coordinates used in {@link GridExtent}.
@@ -510,7 +510,7 @@ public class GridGeometry implements LenientComparable, 
Serializable {
      *                    {@linkplain PixelInCell#CELL_CORNER cell corner} for 
Java2D/JAI conventions.
      * @param  gridToCRS  the mapping from grid coordinates to "real world" 
coordinates, or {@code null} if unknown.
      * @param  envelope   the geospatial envelope, including its coordinate 
reference system if available.
-     *                    There is no guarantees that the envelope actually 
stored in the {@code GridGeometry}
+     *                    There is no guarantee that the envelope actually 
stored in the {@code GridGeometry}
      *                    will be equal to this specified envelope.
      * @param  rounding   controls behavior of rounding from floating point 
values to integers.
      * @throws IllegalGridGeometryException if the math transform can not 
compute the grid extent or the resolution.
@@ -1141,7 +1141,7 @@ public class GridGeometry implements LenientComparable, 
Serializable {
             final Matrix mat = MathTransforms.getMatrix(step);
             if (mat != null) {
                 /*
-                 * For linear transforms there is no bits to set. However if 
some bits were set by a previous
+                 * For linear transforms there are no bits to set. However if 
some bits were set by a previous
                  * iteration, we may need to move them (for example the 
transform may swap axes). We take the
                  * current bitmasks as source dimensions and find what are the 
target dimensions for them.
                  */
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/feature/CharacteristicTypeMap.java
 
b/core/sis-feature/src/main/java/org/apache/sis/feature/CharacteristicTypeMap.java
index af664d144e..0c11088ca4 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/feature/CharacteristicTypeMap.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/feature/CharacteristicTypeMap.java
@@ -153,7 +153,7 @@ final class CharacteristicTypeMap extends 
AbstractMap<String,AttributeType<?>> {
     }
 
     /**
-     * Returns {@code true} if there is no attribute characteristics.
+     * Returns {@code true} if there are no attribute characteristics.
      */
     @Override
     public boolean isEmpty() {
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAssociationRole.java
 
b/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAssociationRole.java
index 23e90e65a3..ef079ac668 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAssociationRole.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAssociationRole.java
@@ -263,7 +263,7 @@ public class DefaultAssociationRole extends FieldType 
implements FeatureAssociat
      * Such recursive search will be performed by {@link #deepSearch(List, 
GenericName)} only
      * if we do not find the desired feature in the most direct way.
      *
-     * <p>Current implementation does not check that there is no duplicated 
names.
+     * <p>Current implementation does not check that there are no duplicated 
names.
      * See {@link #deepSearch(List, GenericName)} for a rational.</p>
      *
      * @param  feature     the feature in which to search.
@@ -323,7 +323,7 @@ public class DefaultAssociationRole extends FieldType 
implements FeatureAssociat
      * Potentially invoked after {@link #search(FeatureType, Collection, 
GenericName, List)} for searching
      * in associations of associations.
      *
-     * <p>Current implementation does not check that there is no duplicated 
names. Even if we did so,
+     * <p>Current implementation does not check that there are no duplicated 
names. Even if we did so,
      * a graph of feature types may have no duplicated names at this time but 
some duplicated names
      * later. We rather put a warning in {@link #DefaultAssociationRole(Map, 
GenericName, int, int)}
      * javadoc.</p>
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java 
b/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java
index 92b4eeffe6..e839cb0540 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java
@@ -327,7 +327,7 @@ public class FeatureFormat extends TabularFormat<Object> {
         }
         /*
          * Computes the columns to show. We start with the set of columns 
specified by setAllowedColumns(Set),
-         * then we check if some of those columns are empty. For example in 
many cases there is no attribute
+         * then we check if some of those columns are empty. For example in 
many cases there are no attributes
          * with characteritic, in which case we will ommit the whole 
"characteristics" column. We perform such
          * check only for optional information, not for mandatory information 
like property names.
          */
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/image/ComputedImage.java 
b/core/sis-feature/src/main/java/org/apache/sis/image/ComputedImage.java
index 2ad2aa329a..56fc18a4d5 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/ComputedImage.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/ComputedImage.java
@@ -105,7 +105,7 @@ import org.apache.sis.internal.feature.Resources;
  * between {@link #getTile(int, int) getTile(…)} method and {@link 
WritableRenderedImage#getWritableTile(int, int)
  * WritableRenderedImage​.getWritableTile}/{@link 
WritableRenderedImage#releaseWritableTile releaseWritableTile(…)} methods.
  * For example if a call to {@code getTile(tileX, tileY)} is followed by a 
call to {@code getWritableTile(tileX, tileY)}
- * in another thread, there is no guarantees about whether or not the sample 
values seen in the {@link Raster} would be
+ * in another thread, there is no guarantee about whether or not the sample 
values seen in the {@link Raster} would be
  * isolated from the write operations done concurrently in the {@link 
WritableRaster}.
  * A future SIS version may define a policy (possibly based on {@link 
java.util.concurrent.locks.ReadWriteLock}).</p>
  *
@@ -443,7 +443,7 @@ public abstract class ComputedImage extends PlanarImage 
implements Disposable {
      *
      * <h4>Race conditions with write operations</h4>
      * If this image implements the {@link WritableRenderedImage} interface, 
then a user may acquire the same
-     * tile for a write operation after this method returned. In such case 
there is no consistency guarantees
+     * tile for a write operation after this method returned. In such case 
there is no consistency guarantee
      * on sample values: the tile returned by this method may show data in an 
unspecified stage during the
      * write operation. A synchronization policy <a 
href="https://issues.apache.org/jira/browse/SIS-487";>may
      * be defined in a future Apache SIS version</a>.
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/image/ComputedTiles.java 
b/core/sis-feature/src/main/java/org/apache/sis/image/ComputedTiles.java
index d123c0e691..8034d96809 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/ComputedTiles.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/ComputedTiles.java
@@ -152,7 +152,7 @@ final class ComputedTiles extends 
WeakReference<ComputedImage> implements Dispos
 
     /**
      * If the specified tile is absent or {@link #DIRTY}, sets its status to 
{@link #COMPUTING} and
-     * returns {@code true}. Otherwise if there is no error, does nothing and 
returns {@code false}.
+     * returns {@code true}. Otherwise if there are no errors, does nothing 
and returns {@code false}.
      *
      * @param  key  indices of the tile to compute if dirty.
      * @return whether the specified tile was absent or dirty.
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/image/ImageProcessor.java 
b/core/sis-feature/src/main/java/org/apache/sis/image/ImageProcessor.java
index 834248a0b2..5bd5a02fa0 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/ImageProcessor.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/ImageProcessor.java
@@ -425,7 +425,7 @@ public class ImageProcessor implements Cloneable {
      * (after unit conversion if needed), the smallest value is taken.
      *
      * <p>Those values are only hints, the {@code ImageProcessor} is free to 
ignore them.
-     * In any cases there is no guarantees that computed images will met those 
accuracies.
+     * In any cases there is no guarantee that computed images will met those 
accuracies.
      * The given values are honored on a <em>best effort</em> basis only.</p>
      *
      * <p>In current implementation, {@code ImageProcessor} recognizes only 
accuracies in {@link Units#PIXEL}.
@@ -1040,7 +1040,7 @@ public class ImageProcessor implements Cloneable {
      * the ranges of values in the destination image.</p>
      *
      * <p>The resulting image is suitable for visualization purposes, but 
should not be used for computation purposes.
-     * There is no guarantees about the number of bands in returned image or 
about which formula is used for converting
+     * There is no guarantee about the number of bands in returned image or 
about which formula is used for converting
      * floating point values to integer values.</p>
      *
      * <h4>Properties used</h4>
@@ -1077,7 +1077,7 @@ public class ImageProcessor implements Cloneable {
      * the ranges of values in the destination image.</p>
      *
      * <p>The resulting image is suitable for visualization purposes, but 
should not be used for computation purposes.
-     * There is no guarantees about the number of bands in returned image or 
about which formula is used for converting
+     * There is no guarantee about the number of bands in returned image or 
about which formula is used for converting
      * floating point values to integer values.</p>
      *
      * <h4>Properties used</h4>
@@ -1111,7 +1111,7 @@ public class ImageProcessor implements Cloneable {
      * more advantageous to keep above method calls separated instead of using 
this {@code visualize(…)} method.
      *
      * <p>The resulting image is suitable for visualization purposes, but 
should not be used for computation purposes.
-     * There is no guarantees about the number of bands in returned image or 
about which formula is used for converting
+     * There is no guarantee about the number of bands in returned image or 
about which formula is used for converting
      * floating point values to integer values.</p>
      *
      * <h4>Properties used</h4>
@@ -1167,7 +1167,7 @@ public class ImageProcessor implements Cloneable {
      * Isolines will be computed for every bands in the given image.
      * For each band, the result is given as a {@code Map} where keys are the 
specified {@code levels}
      * and values are the isolines at the associated level.
-     * If there is no isoline for a given level, there will be no 
corresponding entry in the map.
+     * If there are no isolines for a given level, there will be no 
corresponding entry in the map.
      *
      * <h4>Properties used</h4>
      * This operation uses the following properties in addition to method 
parameters:
@@ -1183,7 +1183,7 @@ public class ImageProcessor implements Cloneable {
      *                    Integer source coordinates are located at pixel 
centers.
      * @return the isolines for specified levels in each band. The {@code 
List} size is the number of bands.
      *         For each band, the {@code Map} size is equal or less than 
{@code levels[band].length}.
-     *         Map keys are the specified levels, excluding those for which 
there is no isoline.
+     *         Map keys are the specified levels, excluding those for which 
there are no isolines.
      *         Map values are the isolines as a Java2D {@link Shape}.
      * @throws ImagingOpException if an error occurred during calculation.
      */
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/image/PixelIterator.java 
b/core/sis-feature/src/main/java/org/apache/sis/image/PixelIterator.java
index 191b1f6f20..007077928d 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/PixelIterator.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/PixelIterator.java
@@ -746,7 +746,7 @@ public class PixelIterator {
      * Any invocation of a {@code getSample(int)} method will result in a 
{@link NoSuchElementException} to be
      * thrown.</p>
      *
-     * @return {@code true} if the current pixel is valid, or {@code false} if 
there is no more pixels.
+     * @return {@code true} if the current pixel is valid, or {@code false} if 
there are no more pixels.
      * @throws IllegalStateException if this iterator already reached end of 
iteration in a previous call
      *         to {@code next()}, and {@link #rewind()} or {@link 
#moveTo(int,int)} have not been invoked.
      */
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/image/StatisticsCalculator.java 
b/core/sis-feature/src/main/java/org/apache/sis/image/StatisticsCalculator.java
index 32ea82a505..213501652f 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/image/StatisticsCalculator.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/image/StatisticsCalculator.java
@@ -229,7 +229,7 @@ final class StatisticsCalculator extends AnnotatedImage {
      *
      * @param  values  the "no data" values. Null and NaN elements are ignored.
      * @return an operator for filtering the given "no data" values,
-     *         or {@code null} if there is no non-NaN value to filter.
+     *         or {@code null} if there are no non-NaN values to filter.
      */
     static DoubleUnaryOperator filterNodataValues(final Number[] values) {
         final double[] retained = new double[values.length];
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/image/Visualization.java 
b/core/sis-feature/src/main/java/org/apache/sis/image/Visualization.java
index 7aee2c936c..3695693b9d 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/Visualization.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/Visualization.java
@@ -76,7 +76,7 @@ final class Visualization extends ResampledImage {
      * </ul>
      *
      * The resulting image is suitable for visualization purposes but should 
not be used for computation purposes.
-     * There is no guarantees about the number of bands in returned image and 
the formulas used for converting
+     * There is no guarantee about the number of bands in returned image and 
the formulas used for converting
      * floating point values to integer values.
      *
      * <h2>Resampling</h2>
@@ -181,7 +181,7 @@ final class Visualization extends ResampledImage {
          * values to unsigned bytes in order to enable the use of {@link 
IndexColorModel}.
          *
          * <p>The resulting image is suitable for visualization but should not 
be used for computational purposes.
-         * There is no guarantees about the number of bands in returned image 
and the formulas used for converting
+         * There is no guarantee about the number of bands in returned image 
and the formulas used for converting
          * floating point values to integer values.</p>
          *
          * <h4>Resampling</h4>
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/index/tree/NodeIterator.java 
b/core/sis-feature/src/main/java/org/apache/sis/index/tree/NodeIterator.java
index c3aeb4048a..5bf1e0ee96 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/index/tree/NodeIterator.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/index/tree/NodeIterator.java
@@ -169,7 +169,7 @@ class NodeIterator<E> implements Spliterator<E>, Cloneable {
         /**
          * Bitmask of quadrants/octants on which to iterate. Quadrants/octants 
are iterated from rightmost
          * bit to leftmost bit. Bits are cleared when the corresponding 
quadrant/octant become the current
-         * one. A value of 0 means that there is no more quadrant to iterate 
for the {@linkplain #node}.
+         * one. A value of 0 means that there are no more quadrants to iterate 
for the {@linkplain #node}.
          *
          * <p><b>Note:</b> we take "quadrant" name from QuadTree, but this 
algorithm can actually be used
          * with more dimensions.</p>
@@ -277,7 +277,7 @@ class NodeIterator<E> implements Spliterator<E>, Cloneable {
         /**
          * Changes the state of this {@code Cursor} for getting elements in 
the specified quadrant/octant.
          * This method is invoked when there is no need to keep current {@code 
Cursor} information anymore,
-         * because there is no other quadrant/octant than the specified one in 
which to iterate.
+         * because there are no other quadrants/octants than the specified one 
in which to iterate.
          *
          * <p>Caller is responsible to update the {@link #node} field after 
this method call
          * and to invoke {@link #findIntersections(NodeIterator)}.</p>
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelFactory.java
 
b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelFactory.java
index c502db5fd5..7b876fb8e1 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelFactory.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelFactory.java
@@ -225,7 +225,7 @@ public final class ColorModelFactory {
             return createGrayScale(dataType, numBands, visibleBand, minimum, 
maximum);
         }
         /*
-         * If there is no category, constructs a gray scale palette.
+         * If there are no categories, construct a gray scale palette.
          */
         final int categoryCount = pieceStarts.length - 1;
         if (numBands == 1 && categoryCount <= 0) {
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/TileOpExecutor.java
 
b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/TileOpExecutor.java
index 748f4b77ba..d26fe1e390 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/TileOpExecutor.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/TileOpExecutor.java
@@ -644,7 +644,7 @@ public class TileOpExecutor {
          *
          * @param  indices  the worker where to update {@link Worker#tx} and 
{@link Worker#ty} indices.
          * @return {@code true} if the tile at the updated indices should be 
processed, or {@code false}
-         *         if there is no more tile to process.
+         *         if there are no more tiles to process.
          */
         final boolean next(final Worker<RI,?,A> indices) {
             final int index = getAndIncrement();
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/GeometryWrapper.java
 
b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/GeometryWrapper.java
index eadb8e895e..826a26718e 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/GeometryWrapper.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/GeometryWrapper.java
@@ -124,7 +124,7 @@ public abstract class GeometryWrapper<G> extends 
AbstractGeometry implements Geo
     /**
      * Sets the coordinate reference system.
      * This method should be invoked only for newly created geometries. If the 
geometry library supports
-     * user objects (e.g. JTS), there is no guarantees that this method will 
not overwrite user setting.
+     * user objects (e.g. JTS), there is no guarantee that this method will 
not overwrite user setting.
      *
      * @param  crs  the coordinate reference system to set.
      *
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Resources.java 
b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Resources.java
index 7a21eda313..3a82bb6a71 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Resources.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Resources.java
@@ -460,7 +460,7 @@ public final class Resources extends IndexedResourceBundle {
      * Constructs a new resource bundle loading data from the given UTF file.
      *
      * @param resources  the path of the binary file containing resources, or 
{@code null} if
-     *        there is no resources. The resources may be a file or an entry 
in a JAR file.
+     *        there are no resources. The resources may be a file or an entry 
in a JAR file.
      */
     public Resources(final URL resources) {
         super(resources);
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/SpatialOperationContext.java
 
b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/SpatialOperationContext.java
index bcf082ec03..82d090097a 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/SpatialOperationContext.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/SpatialOperationContext.java
@@ -244,7 +244,7 @@ select: if (commonCRS == null) {
                 }
             }
             /*
-             * If there is no restriction on units of measurement, or if no 
geometry CRS met that restriction,
+             * If there are no restrictions on units of measurement, or if no 
geometry CRS met that restriction,
              * request a CRS which may be different than the CRS of all 
geometries. The search takes in account
              * the CRS domains of validity. The CRS found may be derived in 
order to be made compatible with the
              * desired units of measurement.
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/PathBuilder.java
 
b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/PathBuilder.java
index a971f92e87..3977234d43 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/PathBuilder.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/PathBuilder.java
@@ -219,7 +219,7 @@ public class PathBuilder {
     /**
      * Returns a shape containing all polylines or polygons added to this 
builder.
      * The {@link #createPolyline(boolean)} method should be invoked before 
this method
-     * for making sure that there is no pending polyline.
+     * for making sure that there are no pending polylines.
      *
      * @return the polyline, polygon or collector of polylines.
      *         May be {@code null} if no polyline or polygon has been created.
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Polyline.java
 
b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Polyline.java
index 9c19b7e09e..2272236471 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Polyline.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Polyline.java
@@ -258,7 +258,7 @@ class Polyline extends FlatShape {
         }
 
         /**
-         * Returns {@code true} if there is no more points to iterate.
+         * Returns {@code true} if there are no more points to iterate.
          */
         @Override
         public boolean isDone() {
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/PathIteratorAdapter.java
 
b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/PathIteratorAdapter.java
index cc4dfed147..6c882b3ae7 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/PathIteratorAdapter.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/PathIteratorAdapter.java
@@ -88,8 +88,8 @@ final class PathIteratorAdapter implements PathIterator {
 
     /**
      * Moves to the next sequence of coordinate tuples. The {@link 
#coordinates} sequence
-     * should be null when this method is invoked. If there is no more 
sequence, then the
-     * {@link #coordinates} will be left unchanged (i.e. null).
+     * should be null when this method is invoked. If there are no more 
sequences,
+     * then the {@link #coordinates} will be left unchanged (i.e. null).
      */
     private void nextSequence() {
         while (sequences.hasNext()) {
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/FunctionRegister.java
 
b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/FunctionRegister.java
index f4dda995af..d7abeb4678 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/FunctionRegister.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/FunctionRegister.java
@@ -50,7 +50,7 @@ public interface FunctionRegister {
 
     /**
      * Returns the names of all functions that this factory can create.
-     * It is currently implementer responsibility to ensure that there is no 
name collision with
+     * It is currently implementer responsibility to ensure that there are no 
name collisions with
      * functions provided by other factories (this problem may be improved in 
future SIS release).
      *
      * @return set of supported function names.
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/IsolineTracer.java
 
b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/IsolineTracer.java
index 54be135bf5..609cc8b45d 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/IsolineTracer.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/IsolineTracer.java
@@ -181,7 +181,7 @@ final class IsolineTracer {
 
         /**
          * The polylines in each column which need to be continued on the next 
row.
-         * This array contains empty instances in columns where there is no 
polyline to continue on next row.
+         * This array contains empty instances in columns where there are no 
polylines to continue on next row.
          * For non-empty element at index <var>x</var>, values on the left 
border are given by pixels at coordinate
          * {@code x} and values on the right border are given by pixels at 
coordinate {@code x+1}. Example:
          *
@@ -545,7 +545,7 @@ final class IsolineTracer {
                 } else if (fragment.addOrMerge(partialPaths)) {
                     /*
                      * The fragment has been merged with previously existing 
fragments and became a polygon.
-                     * We can write the polygon immediately. There is no more 
reference to those coordinates
+                     * We can write the polygon immediately. There are no more 
references to those coordinates
                      * in the `partialPaths` map.
                      */
                     polylines = fragment.toPolylines();
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/Isolines.java
 
b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/Isolines.java
index 7ef3482026..abc87cd60b 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/Isolines.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/Isolines.java
@@ -177,7 +177,7 @@ public final class Isolines {
      * when all other computations finished. Pending polylines are sequences 
of points not yet
      * stored in geometry objects because they were waiting to see if 
additional points would
      * close them as polygons. This {@code flush()} method is invoked when we 
know that it will
-     * not be the case because there is no more points to add.
+     * not be the case because there are no more points to add.
      *
      * @param  isolines  the isolines for which to write pending polylines.
      * @return the {@code isolines} array, returned for convenience.
diff --git 
a/core/sis-feature/src/test/java/org/apache/sis/feature/builder/AttributeTypeBuilderTest.java
 
b/core/sis-feature/src/test/java/org/apache/sis/feature/builder/AttributeTypeBuilderTest.java
index 9617d6f32b..e9cf8b5e0c 100644
--- 
a/core/sis-feature/src/test/java/org/apache/sis/feature/builder/AttributeTypeBuilderTest.java
+++ 
b/core/sis-feature/src/test/java/org/apache/sis/feature/builder/AttributeTypeBuilderTest.java
@@ -125,7 +125,7 @@ public final strictfp class AttributeTypeBuilderTest 
extends TestCase {
         /*
          * Pretend that we changed our mind and now want a Double type instead 
of Float.
          * In current implementation this requires the creation of a new 
builder instance,
-         * but there is no guarantees that it will always be the case in 
future versions.
+         * but there is no guarantee that it will always be the case in future 
versions.
          */
         final AttributeTypeBuilder<Double> newb = 
builder.setValueClass(Double.class);
         assertEquals("name",          "temperature",      
newb.getName().toString());
diff --git 
a/core/sis-feature/src/test/java/org/apache/sis/feature/builder/CharacteristicTypeBuilderTest.java
 
b/core/sis-feature/src/test/java/org/apache/sis/feature/builder/CharacteristicTypeBuilderTest.java
index 715c5183c2..792cd970ba 100644
--- 
a/core/sis-feature/src/test/java/org/apache/sis/feature/builder/CharacteristicTypeBuilderTest.java
+++ 
b/core/sis-feature/src/test/java/org/apache/sis/feature/builder/CharacteristicTypeBuilderTest.java
@@ -56,7 +56,7 @@ public final strictfp class CharacteristicTypeBuilderTest 
extends TestCase {
         /*
          * Pretend that we changed our mind and now want a Float type instead 
of Integer.
          * In current implementation this requires the creation of a new 
builder instance,
-         * but there is no guarantees that it will always be the case in 
future versions.
+         * but there is no guarantee that it will always be the case in future 
versions.
          */
         final CharacteristicTypeBuilder<Float> newb = 
builder.setValueClass(Float.class);
         assertEquals("name",          "stddev",           
newb.getName().toString());
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/TypeRegistration.java
 
b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/TypeRegistration.java
index e3a4bb37ab..0d1389e5f0 100644
--- 
a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/TypeRegistration.java
+++ 
b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/TypeRegistration.java
@@ -125,7 +125,7 @@ public abstract class TypeRegistration {
      * Implementations will typically perform an {@code instanceof} check, 
then invoke one
      * of the {@code castOrCopy(…)} static methods defined in various Apache 
SIS classes.
      *
-     * @return converter for the value to marshal, or {@code null} if there is 
no value to convert.
+     * @return converter for the value to marshal, or {@code null} if there 
are no values to convert.
      *
      * @since 0.8
      */
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_DateTime.java
 
b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_DateTime.java
index 14ee4433ef..e39d0a435e 100644
--- 
a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_DateTime.java
+++ 
b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_DateTime.java
@@ -67,8 +67,8 @@ public final class GO_DateTime extends 
XmlAdapter<GO_DateTime, Date> {
     private XMLGregorianCalendar dateTime;
 
     /**
-     * The date value using the {@code "Date"} name, used when there is no
-     * hour, minutes or seconds to format.
+     * The date value using the {@code "Date"} name,
+     * used when there are no hours, minutes or seconds to format.
      */
     @XmlElement(name = "Date")
     @XmlSchemaType(name = "date")
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Resources.java
 
b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Resources.java
index 6e7c9342ab..b9471dd363 100644
--- 
a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Resources.java
+++ 
b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Resources.java
@@ -93,7 +93,7 @@ public final class Resources extends IndexedResourceBundle {
      * Constructs a new resource bundle loading data from the given UTF file.
      *
      * @param resources  the path of the binary file containing resources, or 
{@code null} if
-     *        there is no resources. The resources may be a file or an entry 
in a JAR file.
+     *        there are no resources. The resources may be a file or an entry 
in a JAR file.
      */
     public Resources(final URL resources) {
         super(resources);
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/SQLUtilities.java
 
b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/SQLUtilities.java
index 68c43f54d1..eeba575e5b 100644
--- 
a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/SQLUtilities.java
+++ 
b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/SQLUtilities.java
@@ -107,7 +107,7 @@ public final class SQLUtilities extends Static {
      *
      * @param  pattern  the pattern to escape, or {@code null} if none.
      * @param  escape   value of {@link 
DatabaseMetaData#getSearchStringEscape()}.
-     * @return escaped strings, or the same instance than {@code pattern} if 
there is no character to escape.
+     * @return escaped strings, or the same instance than {@code pattern} if 
there are no characters to escape.
      */
     public static String escape(final String pattern, final String escape) {
         if (pattern != null) {
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/ScriptRunner.java
 
b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/ScriptRunner.java
index 19d51e95cc..77d7a244e8 100644
--- 
a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/ScriptRunner.java
+++ 
b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/ScriptRunner.java
@@ -233,7 +233,7 @@ public class ScriptRunner implements AutoCloseable {
     /**
      * The regular expression to use for building {@link #statementsToSkip}.
      * At most one of {@code regexOfStmtToSkip} and {@code statementsToSkip} 
shall be non-null.
-     * Both fields may be null if there is no statement to skip.
+     * Both fields may be null if there are no statements to skip.
      */
     private StringBuilder regexOfStmtToSkip;
 
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/IdentifierGenerator.java
 
b/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/IdentifierGenerator.java
index aae4366d2f..d642578506 100644
--- 
a/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/IdentifierGenerator.java
+++ 
b/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/IdentifierGenerator.java
@@ -121,7 +121,7 @@ final class IdentifierGenerator implements AutoCloseable {
                 String current = rs.getString(1);
                 if (current.equals(proposal)) {
                     /*
-                     * The proposed identifier is already used. If there is no 
other identifiers,
+                     * The proposed identifier is already used. If there are 
no other identifiers,
                      * just append "-1" and we are done. Otherwise we need to 
search for a "hole"
                      * in the sequence of number suffixes.
                      */
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/xml/TransformingReader.java 
b/core/sis-metadata/src/main/java/org/apache/sis/xml/TransformingReader.java
index a43bdc38ad..4ae95fd3a7 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/TransformingReader.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/TransformingReader.java
@@ -380,7 +380,7 @@ final class TransformingReader extends Transformer 
implements XMLEventReader {
      * @param  oldURI      an old URI which has been renamed as {@code 
newURI}, or {@code null} if none.
      * @param  newURI      the new URI for {@code oldURI}, or {@code null} if 
{@code newURI} is null.
      * @param  changed     whether to unconditionally pretend that there is a 
change.
-     * @return the updated namespaces, or {@code null} if there is no changes.
+     * @return the updated namespaces, or {@code null} if there is no change.
      */
     private List<Namespace> importNS(final Iterator<Namespace> namespaces,
             final String oldURI, final String newURI, boolean changed)
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/xml/TransformingWriter.java 
b/core/sis-metadata/src/main/java/org/apache/sis/xml/TransformingWriter.java
index f9cd981e30..27cd1e1868 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/TransformingWriter.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/TransformingWriter.java
@@ -309,7 +309,7 @@ final class TransformingWriter extends Transformer 
implements XMLEventWriter {
      *
      * @param  namespaces  the namespaces to transform.
      * @param  changed     whether to unconditionally pretend that there is a 
change.
-     * @return the updated namespaces, or {@code null} if there is no changes.
+     * @return the updated namespaces, or {@code null} if there is no change.
      */
     private List<Namespace> export(final Iterator<Namespace> namespaces, 
boolean changed) {
         if (!namespaces.hasNext()) {
diff --git 
a/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/Canvas.java 
b/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/Canvas.java
index 57ef5cd0bc..26b29e0cc0 100644
--- a/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/Canvas.java
+++ b/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/Canvas.java
@@ -215,7 +215,7 @@ public class Canvas extends Observable implements Localized 
{
     /**
      * The {@value} property name. The geographic area is a synthetic property 
computed
      * from {@value #DISPLAY_BOUNDS_PROPERTY}, {@value 
#OBJECTIVE_TO_DISPLAY_PROPERTY}
-     * and {@value #OBJECTIVE_CRS_PROPERTY}. There is no event fired for this 
property.
+     * and {@value #OBJECTIVE_CRS_PROPERTY}. There are no events fired for 
this property.
      *
      * @see #getGeographicArea()
      */
@@ -224,7 +224,7 @@ public class Canvas extends Observable implements Localized 
{
     /**
      * The {@value} property name. The resolution is a synthetic property 
computed from
      * {@value #POINT_OF_INTEREST_PROPERTY}, {@value 
#OBJECTIVE_TO_DISPLAY_PROPERTY} and
-     * {@value #OBJECTIVE_CRS_PROPERTY}. There is no event fired for this 
property.
+     * {@value #OBJECTIVE_CRS_PROPERTY}. There are no events fired for this 
property.
      *
      * @see #getSpatialResolution()
      */
@@ -844,7 +844,7 @@ public class Canvas extends Observable implements Localized 
{
     }
 
     /**
-     * Sets the coordinates of the point center of display area when there is 
no zoom or translations events.
+     * Sets the coordinates of the point center of display area when there are 
no zoom or translations events.
      * If the given value is different than the previous value, then a change 
event is sent to all listeners
      * registered for the {@value #POINT_OF_INTEREST_PROPERTY} property.
      *
@@ -1036,7 +1036,7 @@ public class Canvas extends Observable implements 
Localized {
      * <p>The value given to this method will be returned by {@link 
#getGridGeometry()} as long as
      * none of above cited properties is changed. If one of those properties 
changes (for example
      * if the user zooms or pans the map), then a new grid geometry will be 
computed. There is no
-     * guarantees that the recomputed grid geometry will be similar to the 
grid geometry specified
+     * guarantee that the recomputed grid geometry will be similar to the grid 
geometry specified
      * to this method. For example the {@link GridExtent} in supplemental 
dimensions may be different.</p>
      *
      * @param  newValue  the grid geometry from which to get new canvas 
properties.
diff --git 
a/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/internal/gazetteer/Resources.java
 
b/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/internal/gazetteer/Resources.java
index 3cbe3fdc42..4d5046afa2 100644
--- 
a/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/internal/gazetteer/Resources.java
+++ 
b/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/internal/gazetteer/Resources.java
@@ -140,7 +140,7 @@ public final class Resources extends IndexedResourceBundle {
      * Constructs a new resource bundle loading data from the given UTF file.
      *
      * @param resources  the path of the binary file containing resources, or 
{@code null} if
-     *        there is no resources. The resources may be a file or an entry 
in a JAR file.
+     *        there are no resources. The resources may be a file or an entry 
in a JAR file.
      */
     public Resources(final URL resources) {
         super(resources);
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/CoordinateOperations.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/CoordinateOperations.java
index 42c4d9a35b..37486b5948 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/CoordinateOperations.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/CoordinateOperations.java
@@ -356,7 +356,7 @@ compare:    for (int i=0; i<dim; i++) {
                                 }
                                 isWrapAroundAxis &= ~mask;      // We are done 
with this source axis.
                                 if (isWrapAroundAxis == 0) {
-                                    break compare;              // Useless to 
continue if there is no more source axis.
+                                    break compare;              // Useless to 
continue if there are no more source axes.
                                 }
                                 continue compare;               // Match next 
pair of wrap around axes.
                             } catch (IncommensurableException e) {
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/Resources.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/Resources.java
index 36943bcf5a..9e17d27b82 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/Resources.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/Resources.java
@@ -590,7 +590,7 @@ public final class Resources extends IndexedResourceBundle {
      * Constructs a new resource bundle loading data from the given UTF file.
      *
      * @param resources  the path of the binary file containing resources, or 
{@code null} if
-     *        there is no resources. The resources may be a file or an entry 
in a JAR file.
+     *        there are no resources. The resources may be a file or an entry 
in a JAR file.
      */
     public Resources(final URL resources) {
         super(resources);
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/AbstractProvider.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/AbstractProvider.java
index ba6ca67a01..8620310e7e 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/AbstractProvider.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/AbstractProvider.java
@@ -219,7 +219,7 @@ public abstract class AbstractProvider extends 
DefaultOperationMethod implements
      *
      * <ul>
      *   <li>0 if neither the source coordinate system or the destination 
coordinate system is ellipsoidal.
-     *       There is no parameter that need to be completed.</li>
+     *       There are no parameters that need to be completed.</li>
      *   <li>1 if this operation has {@code "semi_major"} and {@code 
"semi_minor"} parameters that need
      *       to be set to the axis lengths of the source ellipsoid.</li>
      *   <li>2 if this operation has {@code "semi_major"} and {@code 
"semi_minor"} parameters that need
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Element.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Element.java
index 6afb3d7e21..dc549ad4c1 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Element.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Element.java
@@ -766,7 +766,7 @@ final class Element {
     /**
      * Returns {@code true} if this element does not contains any remaining 
child.
      *
-     * @return {@code true} if there is no child remaining.
+     * @return {@code true} if there are no children remaining.
      */
     public boolean isEmpty() {
         return children.isEmpty();
@@ -780,8 +780,8 @@ final class Element {
     }
 
     /**
-     * Closes this element. This method verifies that there is no unprocessed 
value (dates,
-     * numbers, booleans or strings), but ignores inner elements as required 
by ISO 19162.
+     * Closes this element. This method verifies that there are no unprocessed 
values
+     * (dates, numbers, booleans or strings), but ignores inner elements as 
required by ISO 19162.
      *
      * This method adds the keywords of ignored elements in the {@code 
ignoredElements} map as below:
      * <ul>
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Formatter.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Formatter.java
index 892e74d63d..ae773a901c 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Formatter.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Formatter.java
@@ -1833,7 +1833,7 @@ public class Formatter implements Localized {
     }
 
     /**
-     * Appends the warnings after the WKT string. If there is no warnings, 
then this method does nothing.
+     * Appends the warnings after the WKT string. If there are no warnings, 
then this method does nothing.
      * If this method is invoked, then it shall be the last method before 
{@link #toWKT()}.
      */
     final void appendWarnings() throws IOException {
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
index 0442f8f2bf..e6be6798b2 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
@@ -756,9 +756,9 @@ class GeodeticObjectParser extends MathTransformParser 
implements Comparator<Coo
             }
         }
         /*
-         * If there is no explicit AXIS[…] elements, or if the user asked to 
ignore them, then we need to
-         * create default axes. This is possible only if we know the type of 
the CS to create, and only
-         * for some of those CS types.
+         * If there are no explicit AXIS[…] elements, or if the user asked to 
ignore them,
+         * then we need to create default axes. This is possible only if we 
know the type
+         * of the CS to create, and only for some of those CS types.
          */
         final CSFactory csFactory = factories.getCSFactory();
         if (axes == null) {
@@ -1000,7 +1000,7 @@ class GeodeticObjectParser extends MathTransformParser 
implements Comparator<Coo
      * @param  csType       the coordinate system type (Cartesian | 
ellipsoidal | vertical | etc…), or null if unknown.
      * @param  defaultUnit  the contextual unit (usually {@code Units.METRE} 
or {@code Units.RADIAN}), or {@code null} if unknown.
      * @return the {@code "AXIS"} element as a {@link CoordinateSystemAxis} 
object,
-     *         or {@code null} if the axis was not required and there is no 
axis object.
+     *         or {@code null} if the axis was not required and there are no 
axis objects.
      * @throws ParseException if the {@code "AXIS"} element can not be parsed.
      */
     private CoordinateSystemAxis parseAxis(final int mode, final Element 
parent, final String csType,
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/StoredTree.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/StoredTree.java
index 8e6259c2fb..8a3feaccda 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/StoredTree.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/StoredTree.java
@@ -232,7 +232,7 @@ final class StoredTree implements Serializable {
 
         /**
          * Returns the string representation of the first value, which is 
usually the element name.
-         * For example in {@code DATUM["WGS 84", …]} this is "WGS 84". If 
there is no children then
+         * For example in {@code DATUM["WGS 84", …]} this is "WGS 84". If 
there are no children then
          * this method returns the keyword, which is usually an enumeration 
value (for example "NORTH"}).
          *
          * @see StoredTree#toString()
@@ -580,7 +580,7 @@ final class StoredTree implements Serializable {
 
     /**
      * Returns the string representation of the first value of the root 
element, which is usually the element name.
-     * For example in {@code DATUM["WGS 84", …]} this is "WGS 84". If there is 
no children then this method returns
+     * For example in {@code DATUM["WGS 84", …]} this is "WGS 84". If there 
are no children then this method returns
      * the keyword, which is usually an enumeration value (for example 
"NORTH"}).
      */
     @Override
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/WKTDictionary.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/WKTDictionary.java
index 1f33e01307..a179791103 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/WKTDictionary.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/WKTDictionary.java
@@ -188,7 +188,7 @@ public class WKTDictionary extends GeodeticAuthorityFactory 
{
      * Values can be one of the following 4 types:
      *
      * <ol>
-     *   <li>{@link StoredTree}: this is the initial state when there is no 
duplicated codes.
+     *   <li>{@link StoredTree}: this is the initial state when there are no 
duplicated codes.
      *       This is the root of a tree of WKT keywords with their values as 
children.
      *       A tree can be parsed later as an {@link IdentifiedObject} when 
first requested.</li>
      *   <li>{@link IdentifiedObject}: the result of parsing the {@link 
StoredTree}
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/Builder.java 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/Builder.java
index aefc1d5643..ae12007d43 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/Builder.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/Builder.java
@@ -761,9 +761,9 @@ public abstract class Builder<B extends Builder<B>> {
      *       with the same authority and the local part defined by {@code 
replacements[1]}.</li>
      *   <li><i>etc.</i> until one of the following conditions is met:
      *     <ul>
-     *       <li>There is no more name associated to the given authority in 
this {@code Builder}, in which case
+     *       <li>There are no more names associated to the given authority in 
this {@code Builder}, in which case
      *           new names are inserted for all remaining elements in the 
{@code replacements} array.</li>
-     *       <li>There is no more elements in the {@code replacements} array, 
in which case all remaining
+     *       <li>There are no more elements in the {@code replacements} array, 
in which case all remaining
      *           names associated to the given authority in this {@code 
Builder} are removed.</li>
      *     </ul>
      *   </li>
@@ -860,9 +860,9 @@ public abstract class Builder<B extends Builder<B>> {
      *       new identifier with the same authority and the local part defined 
by {@code replacements[1]}.</li>
      *   <li><i>etc.</i> until one of the following conditions is met:
      *     <ul>
-     *       <li>There is no more identifier associated to the given authority 
in this {@code Builder}, in which case
+     *       <li>There are no more identifiers associated to the given 
authority in this {@code Builder}, in which case
      *           new identifiers are inserted for all remaining elements in 
the {@code replacements} array.</li>
-     *       <li>There is no more elements in the {@code replacements} array, 
in which case all remaining
+     *       <li>There are no more elements in the {@code replacements} array, 
in which case all remaining
      *           identifiers associated to the given authority in this {@code 
Builder} are removed.</li>
      *     </ul>
      *   </li>
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/NamedIdentifier.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/NamedIdentifier.java
index 84ef85c3a4..916f115371 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/NamedIdentifier.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/NamedIdentifier.java
@@ -64,7 +64,7 @@ import org.apache.sis.util.ArgumentChecks;
  *   <li><b>{@linkplain #head() Head}:</b> derived from the identifier 
{@linkplain #getCodeSpace() code space} if non-null.
  *     If there is no code space, then the scope is derived from the shortest 
{@linkplain #getAuthority() authority}'s
  *     {@linkplain Citation#getAlternateTitles() alternate titles}, or the 
{@linkplain Citation#getTitle() main title}
- *     if there is no alternate titles. This policy exploits the ISO 19115 
comment saying that citation alternate titles
+ *     if there are no alternate titles. This policy exploits the ISO 19115 
comment saying that citation alternate titles
  *     often contain abbreviation (for example "DCW" as an alternative title 
for <cite>"Digital Chart of the World"</cite>).</li>
  * </ul>
  *
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultProjectedCRS.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultProjectedCRS.java
index 989b6ba8a9..2e7a55abab 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultProjectedCRS.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultProjectedCRS.java
@@ -475,7 +475,7 @@ public class DefaultProjectedCRS extends 
AbstractDerivedCRS<Projection> implemen
                              * for "semi_major" or "semi_minor" axis length. 
This should not happen with SIS
                              * implementation, but may happen with 
user-defined map projection implementations.
                              * Since the intent of this check was to skip 
those parameters anyway, it is okay
-                             * for the purpose of WKT formatting if there is 
no parameter for axis lengths.
+                             * for the purpose of WKT formatting if there are 
no parameters for axis lengths.
                              */
                             
Logging.recoverableException(Logging.getLogger(Loggers.WKT), 
DefaultProjectedCRS.class, "formatTo", e);
                             continue;
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java
index 161d39cc18..057cb31de4 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java
@@ -194,7 +194,7 @@ public class AbstractCS extends AbstractIdentifiedObject 
implements CoordinateSy
                 }
             }
             /*
-             * Ensures there is no axis along the same direction (e.g. two 
North axes, or an East and a West axis).
+             * Ensures there are no axes along the same direction (e.g. two 
North axes, or an East and a West axis).
              * An exception to this rule is the time axis, since ISO 19107 
explicitly allows compound CRS to have
              * more than one time axis. Such case happen in meteorological 
models.
              */
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/CoordinateSystems.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/CoordinateSystems.java
index 77d8f47e47..59b8342252 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/CoordinateSystems.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/CoordinateSystems.java
@@ -378,13 +378,13 @@ next:   for (final CoordinateSystem cs : targets) {
             final Unit<?> targetUnit = targetCS.getAxis(j).getUnit();
             for (int i=0; i<sourceDim; i++) {
                 if (matrix.getElement(j,i) == 0) {
-                    // There is no dependency between source[i] and target[j]
+                    // There are no dependencies between source[i] and 
target[j]
                     // (i.e. axes are orthogonal).
                     continue;
                 }
                 final Unit<?> sourceUnit = sourceCS.getAxis(i).getUnit();
                 if (Objects.equals(sourceUnit, targetUnit)) {
-                    // There is no units conversion to apply
+                    // There are no units conversion to apply
                     // between source[i] and target[j].
                     continue;
                 }
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java
index 63e1b6259f..daa0a9ff05 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java
@@ -601,7 +601,7 @@ class CoordinateOperationRegistry {
                     /*
                      * If we found at least one non-deprecated operation, we 
will stop the search at
                      * the first deprecated one (assuming that deprecated 
operations are sorted last).
-                     * Deprecated operations are kept only if there is no 
non-deprecated operations.
+                     * Deprecated operations are kept only if there are no 
non-deprecated operations.
                      */
                     try {
                         for (final CoordinateOperation candidate : 
authoritatives) {
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Orthographic.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Orthographic.java
index a4d384e575..304b25ed89 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Orthographic.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Orthographic.java
@@ -252,7 +252,7 @@ public class Orthographic extends NormalizedProjection {
         dstPts[dstOff+1]  = asin(cosc*sinφ0 + y*cosφ0);         // Synder 
(20-14) where y⋅sin(c)/ρ = y/R with R=1.
         if (eccentricity != 0) {
             /*
-             * In the ellipsoidal case, there is no reverse formulas. Instead 
we take a first estimation of (λ,φ),
+             * In the ellipsoidal case, there are no reverse formulas. Instead 
we take a first estimation of (λ,φ),
              * compute the forward projection (E′,N′) for that estimation, 
compute the errors compared to specified
              * (E,N) values, convert that (ΔE,ΔN) error into a (Δλ,Δφ) error 
using the inverse of Jacobian matrix,
              * correct (λ,φ) and continue iteratively until the error is small 
enough. This algorithm described in
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/internal/system/Fallback.java 
b/core/sis-utility/src/main/java/org/apache/sis/internal/system/Fallback.java
index bcf7db9dc3..0cd5a9e2e2 100644
--- 
a/core/sis-utility/src/main/java/org/apache/sis/internal/system/Fallback.java
+++ 
b/core/sis-utility/src/main/java/org/apache/sis/internal/system/Fallback.java
@@ -25,7 +25,7 @@ import java.lang.annotation.Target;
 /**
  * Controls the preferred service provider when there is more than
  * one implementation of the same Service Provider Interface (SPI).
- * Providers marked with this {@code Fallback} annotation will be used only if 
there is no other provider.
+ * Providers marked with this {@code Fallback} annotation will be used only if 
there are no other providers.
  * Service providers without this annotation are returned immediately, without 
scanning other providers.
  *
  * <p>Providers without this annotation are assumed to have a priority of 
zero.</p>
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/internal/util/AbstractIterator.java
 
b/core/sis-utility/src/main/java/org/apache/sis/internal/util/AbstractIterator.java
index 09c15da96b..06abb78e5e 100644
--- 
a/core/sis-utility/src/main/java/org/apache/sis/internal/util/AbstractIterator.java
+++ 
b/core/sis-utility/src/main/java/org/apache/sis/internal/util/AbstractIterator.java
@@ -37,7 +37,7 @@ import java.util.NoSuchElementException;
 public abstract class AbstractIterator<E> implements Iterator<E> {
     /**
      * The next value to be returned by {@link #next()}, or {@code null} if 
not yet determined.
-     * This field should be set by a non-null value by {@link #hasNext()}, 
unless there is no more elements.
+     * This field should be set by a non-null value by {@link #hasNext()}, 
unless there are no more elements.
      */
     protected E next;
 
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/internal/util/CollectionsExt.java
 
b/core/sis-utility/src/main/java/org/apache/sis/internal/util/CollectionsExt.java
index 3ff355b80a..e286296ac1 100644
--- 
a/core/sis-utility/src/main/java/org/apache/sis/internal/util/CollectionsExt.java
+++ 
b/core/sis-utility/src/main/java/org/apache/sis/internal/util/CollectionsExt.java
@@ -978,7 +978,7 @@ public final class CollectionsExt extends Static {
             }
 
             /**
-             * Returns the next element. If there is no more elements,
+             * Returns the next element. If there are no more elements,
              * the exception will be thrown by the wrapped iterator.
              */
             @Override public E next() {
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/math/MathFunctions.java 
b/core/sis-utility/src/main/java/org/apache/sis/math/MathFunctions.java
index d320b02c9c..1b8ca41522 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/math/MathFunctions.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/math/MathFunctions.java
@@ -1151,7 +1151,7 @@ testNextNumber:         while (true) {      // Simulate a 
"goto" statement (usua
      * Duplicated values should be very rare and occur mostly as a consequence 
of rounding errors while computing the
      * roots of polynomial equations. Because if the algebraic solution has 
less roots than what we would expect from
      * the largest exponent (for example ax² + bx = 0 has only one root 
instead of two), then {@link #polynomialRoots}
-     * should have reduced the equation to a lower degrees (ax + b = 0 in 
above example), in which case there is no
+     * should have reduced the equation to a lower degrees (ax + b = 0 in 
above example), in which case there are no
      * duplicated roots to remove.
      */
     private static double[] removeDuplicated(double[] roots) {
diff --git a/core/sis-utility/src/main/java/org/apache/sis/math/Vector.java 
b/core/sis-utility/src/main/java/org/apache/sis/math/Vector.java
index 90d0cca0a5..5059d6bf0e 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/math/Vector.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/math/Vector.java
@@ -632,7 +632,7 @@ public abstract class Vector extends AbstractList<Number> 
implements RandomAcces
      * This method can detect such regularity, which allows more efficient 
handling of the <cite>grid to CRS</cite> transform.</p>
      *
      * @param  candidates  probable values, or {@code null} or an empty array 
if unknown. If non-empty, those values will be used
-     *         for narrowing the search, which may improve performances. There 
is no guarantees that the values returned by this
+     *         for narrowing the search, which may improve performances. There 
is no guarantee that the values returned by this
      *         method will be among the given candidates.
      * @return the number of times that entities (numbers, or group of 
numbers) appears consecutively with identical values.
      *         If no such repetition is found, an empty array.
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/measure/FormattedCharacterIterator.java
 
b/core/sis-utility/src/main/java/org/apache/sis/measure/FormattedCharacterIterator.java
index ea5c6b9f8d..36f27f3d42 100644
--- 
a/core/sis-utility/src/main/java/org/apache/sis/measure/FormattedCharacterIterator.java
+++ 
b/core/sis-utility/src/main/java/org/apache/sis/measure/FormattedCharacterIterator.java
@@ -39,7 +39,7 @@ import org.apache.sis.internal.util.SimpleCharacterIterator;
  * Every {@code getRunStart(…)} and {@code getRunLimit(…)} methods defined in 
this class check
  * only for attribute existence, ignoring the actual attribute value. This is 
a departure from
  * the {@link java.text.AttributedCharacterIterator} contract, but should be 
invisible to the
- * users if there is no juxtaposed fields with the same attribute value (which 
is usually the
+ * users if there are no juxtaposed fields with the same attribute value 
(which is usually the
  * case). A violation occurs if different fields are formatted without 
separator. For example
  * if an angle is formatted as "DDMMSS" without any field separator, then we 
have 3 juxtaposed
  * integer fields. If those fields have the same value, then the whole 
"DDMMSS" text should be
diff --git a/core/sis-utility/src/main/java/org/apache/sis/measure/Scalar.java 
b/core/sis-utility/src/main/java/org/apache/sis/measure/Scalar.java
index 19a8539638..c250ca7df8 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/Scalar.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/Scalar.java
@@ -78,7 +78,7 @@ class Scalar<Q extends Quantity<Q>> extends Number implements 
Quantity<Q>, Compa
      *       is only a scale factor.</li>
      * </ul>
      *
-     * {@link DerivedScalar} relies on the fact that there is no other 
situations where this method
+     * {@link DerivedScalar} relies on the fact that there are no other 
situations where this method
      * is invoked. If this assumption become not true anymore in a future SIS 
version, then we need
      * to revisit {@code DerivedScalar}.
      *
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java 
b/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java
index 61811768d3..73b551fd12 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java
@@ -1257,7 +1257,7 @@ scan:   for (int n; i < end; i += n) {
                                symbols.subSequence(start, i), Style.CLOSE), 
symbols, start);
                     }
                     unit = operation.apply(unit, term, pos);
-                    operation.code = Operation.IMPLICIT;    // Default 
operation if there is no × or / symbols after parenthesis.
+                    operation.code = Operation.IMPLICIT;    // Default 
operation if there is no × or / symbol after parenthesis.
                     start = i + (n = 1);                    // Skip the number 
of characters in the '(' Unicode code point.
                     continue;
                 }
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java 
b/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java
index 87e3195054..7ce2f0cebe 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java
@@ -1979,7 +1979,7 @@ cmp:    while (ia < lga) {
      * are a common suffix of both texts but nevertheless omitted because they 
cut a word.</div>
      *
      * <p>If one of those texts is {@code null}, then the other text is 
returned.
-     * If there is no common words, then this method returns an empty 
string.</p>
+     * If there are no common words, then this method returns an empty 
string.</p>
      *
      * <h4>Possible future evolution</h4>
      * Current implementation searches only for a common prefix and a common 
suffix, ignoring any common words
@@ -2123,7 +2123,7 @@ cmp:    while (ia < lga) {
      * @param  text       the text for which to get the token.
      * @param  fromIndex  index of the fist character to consider in the given 
text.
      * @return a sub-sequence of {@code text} starting at the given offset, or 
an empty string
-     *         if there is no non-blank character at or after the given offset.
+     *         if there are no non-blank character at or after the given 
offset.
      * @throws NullPointerException if the {@code text} argument is null.
      */
     public static CharSequence token(final CharSequence text, int fromIndex) {
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/util/collection/Cache.java 
b/core/sis-utility/src/main/java/org/apache/sis/util/collection/Cache.java
index ca44108db3..29f70c2089 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/collection/Cache.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/collection/Cache.java
@@ -122,7 +122,7 @@ import 
org.apache.sis.internal.system.ReferenceQueueConsumer;
  *
  * <h2>Circular dependencies</h2>
  *
- * This implementation assumes that there is no circular dependencies (or 
cyclic graph) between
+ * This implementation assumes that there are no circular dependencies (or 
cyclic graph) between
  * the values in the cache. For example if creating <var>A</var> implies 
creating <var>B</var>,
  * then creating <var>B</var> is not allowed to implies (directly or 
indirectly) the creation of
  * <var>A</var>. If this condition is not met, deadlock may occur randomly.
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java 
b/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
index d906781edc..4cf445a241 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
@@ -1062,7 +1062,7 @@ public final class Errors extends IndexedResourceBundle {
      * Constructs a new resource bundle loading data from the given UTF file.
      *
      * @param resources  the path of the binary file containing resources, or 
{@code null} if
-     *        there is no resources. The resources may be a file or an entry 
in a JAR file.
+     *        there are no resources. The resources may be a file or an entry 
in a JAR file.
      */
     Errors(final URL resources) {
         super(resources);
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/util/resources/IndexedResourceBundle.java
 
b/core/sis-utility/src/main/java/org/apache/sis/util/resources/IndexedResourceBundle.java
index 4f36676ffa..1ee9265a57 100644
--- 
a/core/sis-utility/src/main/java/org/apache/sis/util/resources/IndexedResourceBundle.java
+++ 
b/core/sis-utility/src/main/java/org/apache/sis/util/resources/IndexedResourceBundle.java
@@ -104,7 +104,7 @@ public class IndexedResourceBundle extends ResourceBundle 
implements Localized {
     static final int FIRST = 1;
 
     /**
-     * The path of the binary file containing resources, or {@code null} if 
there is no resources
+     * The path of the binary file containing resources, or {@code null} if 
there are no resources
      * or if the resources have already been loaded. The resources may be a 
file or an entry in a
      * JAR file.
      */
@@ -139,7 +139,7 @@ public class IndexedResourceBundle extends ResourceBundle 
implements Localized {
      * Constructs a new resource bundle loading data from the given UTF file.
      *
      * @param  resources  the path of the binary file containing resources, or 
{@code null} if
-     *         there is no resources. The resources may be a file or an entry 
in a JAR file.
+     *         there are no resources. The resources may be a file or an entry 
in a JAR file.
      */
     protected IndexedResourceBundle(final URL resources) {
         this.resources = resources;
@@ -281,7 +281,7 @@ public class IndexedResourceBundle extends ResourceBundle 
implements Localized {
             values = this.values;
             if (values == null) {
                 /*
-                 * If there is no explicit resources for this instance, 
inherit the resources
+                 * If there are no explicit resources for this instance, 
inherit the resources
                  * from the parent. Note that this IndexedResourceBundle 
instance may still
                  * differ from its parent in the way dates and numbers are 
formatted.
                  */
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.java 
b/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.java
index 65ae9ec045..ada8ef97eb 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.java
@@ -232,7 +232,7 @@ public final class Messages extends IndexedResourceBundle {
      * Constructs a new resource bundle loading data from the given UTF file.
      *
      * @param resources  the path of the binary file containing resources, or 
{@code null} if
-     *        there is no resources. The resources may be a file or an entry 
in a JAR file.
+     *        there are no resources. The resources may be a file or an entry 
in a JAR file.
      */
     Messages(final URL resources) {
         super(resources);
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java 
b/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java
index b43a0376fd..37c1dc2052 100644
--- 
a/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java
+++ 
b/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java
@@ -1399,7 +1399,7 @@ public final class Vocabulary extends 
IndexedResourceBundle {
      * Constructs a new resource bundle loading data from the given UTF file.
      *
      * @param resources  the path of the binary file containing resources, or 
{@code null} if
-     *        there is no resources. The resources may be a file or an entry 
in a JAR file.
+     *        there are no resources. The resources may be a file or an entry 
in a JAR file.
      */
     Vocabulary(final URL resources) {
         super(resources);
diff --git 
a/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/landsat/doc-files/MetadataMapping.html
 
b/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/landsat/doc-files/MetadataMapping.html
index e349c10b30..cb299433e0 100644
--- 
a/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/landsat/doc-files/MetadataMapping.html
+++ 
b/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/landsat/doc-files/MetadataMapping.html
@@ -74,7 +74,7 @@
       While Landsat files are divided in groups 
(<code>METADATA_FILE_INFO</code>, <code>PRODUCT_METADATA</code>,
       <code>IMAGE_ATTRIBUTES</code>, <code>MIN_MAX_RADIANCE</code>, 
<code>MIN_MAX_REFLECTANCE</code>,
       <code>MIN_MAX_PIXEL_VALUE</code>, <code>RADIOMETRIC_RESCALING</code>, 
<code>TIRS_THERMAL_CONSTANTS</code>,
-      <code>PROJECTION_PARAMETERS</code>), they can nevertheless be though as 
flat structures since there is no
+      <code>PROJECTION_PARAMETERS</code>), they can nevertheless be though as 
flat structures since there are no
       duplicated key names. Consequently the Landsat group are omitted in the 
following discussion.
       But ISO 19115 metadata on the other hand are structured as trees, and 
this tree structure can not be ignored.
     </p>
diff --git 
a/storage/sis-geotiff/src/main/java/org/apache/sis/internal/geotiff/Resources.java
 
b/storage/sis-geotiff/src/main/java/org/apache/sis/internal/geotiff/Resources.java
index efcc677d02..23d176ccba 100644
--- 
a/storage/sis-geotiff/src/main/java/org/apache/sis/internal/geotiff/Resources.java
+++ 
b/storage/sis-geotiff/src/main/java/org/apache/sis/internal/geotiff/Resources.java
@@ -223,7 +223,7 @@ public final class Resources extends IndexedResourceBundle {
      * Constructs a new resource bundle loading data from the given UTF file.
      *
      * @param resources  the path of the binary file containing resources, or 
{@code null} if
-     *        there is no resources. The resources may be a file or an entry 
in a JAR file.
+     *        there are no resources. The resources may be a file or an entry 
in a JAR file.
      */
     public Resources(final URL resources) {
         super(resources);
diff --git 
a/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java 
b/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java
index c770d60af5..9c18937968 100644
--- 
a/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java
+++ 
b/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java
@@ -242,7 +242,7 @@ final class Reader extends GeoTIFF {
      * followed by a sequence of 12-byte field entries, followed by a pointer 
to the next IFD (or 0 if none).
      *
      * @param  index  index of the (potentially pyramided) image, not counting 
reduced-resolution (overview) images.
-     * @return the IFD if we found it, or {@code null} if there is no more IFD.
+     * @return the IFD if we found it, or {@code null} if there are no more 
IFDs.
      * @throws ArithmeticException if the pointer to a next IFD is too far.
      *
      * @see #getImage(int)
diff --git 
a/storage/sis-geotiff/src/test/java/org/apache/sis/internal/storage/inflater/CCITTRLETest.java
 
b/storage/sis-geotiff/src/test/java/org/apache/sis/internal/storage/inflater/CCITTRLETest.java
index 94bb18993d..ad0903138d 100644
--- 
a/storage/sis-geotiff/src/test/java/org/apache/sis/internal/storage/inflater/CCITTRLETest.java
+++ 
b/storage/sis-geotiff/src/test/java/org/apache/sis/internal/storage/inflater/CCITTRLETest.java
@@ -427,7 +427,7 @@ public final strictfp class CCITTRLETest extends TestCase {
 
     /**
      * Fills {@link #tree} and {@link #sequenceOfAllWords} with values 
computed from the given table.
-     * Some assertions are verified in this process, for example that there is 
no duplicated values.
+     * Some assertions are verified in this process, for example that there 
are no duplicated values.
      *
      * @param  codes  {@link #WHITE_RUN_LENGTHS} or {@link #BLACK_RUN_LENGTHS}.
      * @param  zero   the word for the run length of 0.
diff --git 
a/storage/sis-geotiff/src/test/java/org/apache/sis/storage/geotiff/GeoKeysTest.java
 
b/storage/sis-geotiff/src/test/java/org/apache/sis/storage/geotiff/GeoKeysTest.java
index ea7abf8b4b..ed0a1107d5 100644
--- 
a/storage/sis-geotiff/src/test/java/org/apache/sis/storage/geotiff/GeoKeysTest.java
+++ 
b/storage/sis-geotiff/src/test/java/org/apache/sis/storage/geotiff/GeoKeysTest.java
@@ -65,7 +65,7 @@ public final strictfp class GeoKeysTest extends TestCase {
             final Identifier identifier = 
IdentifiedObjects.getIdentifier(method, Citations.GEOTIFF);
             final Set<String> names = IdentifiedObjects.getNames(method, 
Citations.GEOTIFF);
             /*
-             * If there is no GeoTIFF identifiers, we should have no GeoTIFF 
name neither.
+             * If there are no GeoTIFF identifiers, we should have no GeoTIFF 
name neither.
              * However we may have more than one name, since GeoTIFF defines 
also aliases.
              */
             assertEquals(method.getName().getCode(), identifier == null, 
names.isEmpty());
@@ -91,7 +91,7 @@ public final strictfp class GeoKeysTest extends TestCase {
                 final Identifier identifier = 
IdentifiedObjects.getIdentifier(param, Citations.GEOTIFF);
                 final Set<String> names = IdentifiedObjects.getNames(param, 
Citations.GEOTIFF);
                 /*
-                 * If there is no GeoTIFF identifiers, we should have no 
GeoTIFF name neither.
+                 * If there are no GeoTIFF identifiers, we should have no 
GeoTIFF name neither.
                  */
                 assertEquals(param.getName().getCode(), identifier == null, 
names.isEmpty());
                 if (identifier != null) {
diff --git 
a/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/CRSBuilder.java
 
b/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/CRSBuilder.java
index bb1191a636..275c40bad2 100644
--- 
a/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/CRSBuilder.java
+++ 
b/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/CRSBuilder.java
@@ -511,7 +511,7 @@ previous:   for (int i=components.size(); --i >= 0;) {
 
     /**
      * Returns the EPSG code of a possible coordinate system from EPSG 
database. This method proceed by brief
-     * inspection of axis directions and units; there is no guarantees that 
the coordinate system returned by
+     * inspection of axis directions and units; there is no guarantee that the 
coordinate system returned by
      * this method match the axes defined in the netCDF file. It is caller's 
responsibility to verify.
      * This is a helper method for {@link #setPredefinedComponents(Decoder)} 
implementations.
      *
diff --git 
a/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/FeatureSet.java
 
b/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/FeatureSet.java
index aab4f137cf..e908d6c8cd 100644
--- 
a/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/FeatureSet.java
+++ 
b/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/FeatureSet.java
@@ -141,7 +141,7 @@ final class FeatureSet extends DiscreteSampling {
      *   <li>{@link GeometryType#LINEAR} with coordinates stored in {@link 
#dynamicProperties}.</li>
      * </ul>
      *
-     * If there is no coordinates ({@link #referencingDimension} = 0), then 
this field shall be {@code true}.
+     * If there are no coordinates ({@link #referencingDimension} = 0), then 
this field shall be {@code true}.
      * This is a convenience for the way we compute an {@code isEmpty} flag in 
{@code tryAdvance(Consumer)}.
      * This policy may change in any future version.
      *
diff --git 
a/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/RasterResource.java
 
b/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/RasterResource.java
index 8eaaba28be..87eba30b96 100644
--- 
a/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/RasterResource.java
+++ 
b/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/RasterResource.java
@@ -258,7 +258,7 @@ public final class RasterResource extends 
AbstractGridCoverageResource implement
             } else {
                 /*
                  * At this point we found a variable where all dimensions are 
in the CRS. This is the usual case;
-                 * there is no band explicitly declared in the netCDF file. 
However in some cases, we should put
+                 * there are no bands explicitly declared in the netCDF file. 
However in some cases, we should put
                  * other variables together with the one we just found. 
Example:
                  *
                  *    1) baroclinic_eastward_sea_water_velocity
diff --git 
a/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/Resources.java
 
b/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/Resources.java
index 2cba062fb6..f5fd71632c 100644
--- 
a/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/Resources.java
+++ 
b/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/Resources.java
@@ -200,7 +200,7 @@ public final class Resources extends IndexedResourceBundle {
      * Constructs a new resource bundle loading data from the given UTF file.
      *
      * @param resources  the path of the binary file containing resources, or 
{@code null} if
-     *        there is no resources. The resources may be a file or an entry 
in a JAR file.
+     *        there are no resources. The resources may be a file or an entry 
in a JAR file.
      */
     public Resources(final URL resources) {
         super(resources);
diff --git 
a/storage/sis-shapefile/src/main/java/org/apache/sis/internal/shapefile/jdbc/AbstractJDBC.java
 
b/storage/sis-shapefile/src/main/java/org/apache/sis/internal/shapefile/jdbc/AbstractJDBC.java
index 5c12b48237..b0223a39db 100644
--- 
a/storage/sis-shapefile/src/main/java/org/apache/sis/internal/shapefile/jdbc/AbstractJDBC.java
+++ 
b/storage/sis-shapefile/src/main/java/org/apache/sis/internal/shapefile/jdbc/AbstractJDBC.java
@@ -63,7 +63,7 @@ public abstract class AbstractJDBC extends AutoChecker 
implements Wrapper {
     }
 
     /**
-     * Defaults to nothing, since there is no SQL warning.
+     * Defaults to nothing, since there are no SQL warnings.
      */
     public void clearWarnings() {
     }
diff --git 
a/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/FeatureIterator.java
 
b/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/FeatureIterator.java
index 844821aea0..40041f99c4 100644
--- 
a/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/FeatureIterator.java
+++ 
b/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/FeatureIterator.java
@@ -293,7 +293,7 @@ final class FeatureIterator implements 
Spliterator<Feature>, AutoCloseable {
 
     /**
      * Executes the current {@link #statement} and stores all features in a 
list.
-     * Returns {@code null} if there is no feature, or returns the feature 
instance
+     * Returns {@code null} if there are no features, or returns the feature 
instance
      * if there is only one such instance, or returns a list of features 
otherwise.
      *
      * @param  owner  if the features to fetch are components of another 
feature, that container feature instance.
diff --git 
a/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/InfoStatements.java
 
b/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/InfoStatements.java
index c4242a8437..7d577422a7 100644
--- 
a/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/InfoStatements.java
+++ 
b/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/InfoStatements.java
@@ -401,7 +401,7 @@ public class InfoStatements implements Localized, 
AutoCloseable {
                     if (warning == null && fromWKT != null) {
                         /*
                          * Following warnings may have occurred during WKT 
parsing and are considered minor.
-                         * They will be reported only if there is no more 
important warnings to report.
+                         * They will be reported only if there are no more 
important warnings to report.
                          */
                         final Warnings w = wktReader.getWarnings();
                         if (w != null) {
diff --git 
a/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/Relation.java
 
b/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/Relation.java
index af3fb28620..3f5c37c882 100644
--- 
a/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/Relation.java
+++ 
b/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/Relation.java
@@ -59,7 +59,7 @@ import org.apache.sis.util.Debug;
  */
 final class Relation extends TableReference {
     /**
-     * An empty array used when there is no relations.
+     * An empty array used when there are no relations.
      */
     static final Relation[] EMPTY = new Relation[0];
 
diff --git 
a/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/Resources.java
 
b/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/Resources.java
index 885dc3a0d4..cc0d57bdc0 100644
--- 
a/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/Resources.java
+++ 
b/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/Resources.java
@@ -138,7 +138,7 @@ public final class Resources extends IndexedResourceBundle {
      * Constructs a new resource bundle loading data from the given UTF file.
      *
      * @param resources  the path of the binary file containing resources, or 
{@code null} if
-     *        there is no resources. The resources may be a file or an entry 
in a JAR file.
+     *        there are no resources. The resources may be a file or an entry 
in a JAR file.
      */
     public Resources(final URL resources) {
         super(resources);
diff --git 
a/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/Table.java
 
b/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/Table.java
index 4f66b44ecd..05b889d543 100644
--- 
a/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/Table.java
+++ 
b/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/Table.java
@@ -110,13 +110,13 @@ final class Table extends AbstractFeatureSet {
 
     /**
      * The primary keys of other tables that are referenced by this table 
foreign key columns.
-     * They are 0:1 relations. May be empty if there is no imported keys but 
never null.
+     * They are 0:1 relations. May be empty if there are no imported keys but 
never null.
      */
     final Relation[] importedKeys;
 
     /**
      * The foreign keys of other tables that reference this table primary key 
columns.
-     * They are 0:N relations. May be empty if there is no exported keys but 
never null.
+     * They are 0:N relations. May be empty if there are no exported keys but 
never null.
      */
     final Relation[] exportedKeys;
 
diff --git 
a/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/postgis/ExtentEstimator.java
 
b/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/postgis/ExtentEstimator.java
index bf20180095..ee0c9575d1 100644
--- 
a/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/postgis/ExtentEstimator.java
+++ 
b/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/postgis/ExtentEstimator.java
@@ -92,7 +92,7 @@ final class ExtentEstimator {
 
     /**
      * Estimates the extent in the specified columns using PostgreSQL 
statistics.
-     * If there is no statistics available, then this method executes {@code 
ANALYZE}
+     * If there are no statistics available, then this method executes {@code 
ANALYZE}
      * and tries again.
      *
      * @param  statement  statement to use for executing queries. Shall be 
closed by caller.
@@ -116,7 +116,7 @@ final class ExtentEstimator {
 
     /**
      * Estimates the extent in the specified columns using current statistics.
-     * If there is no statistics available, then this method returns {@code 
null}.
+     * If there are no statistics available, then this method returns {@code 
null}.
      *
      * @param  statement  statement to use for executing queries. Shall be 
closed by caller.
      * @return an estimation of the union of extents in given columns, or 
{@code null} if unknown.
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.java
index 0e50eb9014..70e56b5a31 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.java
@@ -406,7 +406,7 @@ public final class Resources extends IndexedResourceBundle {
      * Constructs a new resource bundle loading data from the given UTF file.
      *
      * @param resources  the path of the binary file containing resources, or 
{@code null} if
-     *        there is no resources. The resources may be a file or an entry 
in a JAR file.
+     *        there are no resources. The resources may be a file or an entry 
in a JAR file.
      */
     public Resources(final URL resources) {
         super(resources);
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/URIDataStore.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/URIDataStore.java
index dd0e0c7a8d..1f6a701159 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/URIDataStore.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/URIDataStore.java
@@ -349,7 +349,7 @@ public abstract class URIDataStore extends DataStore 
implements StoreResource, R
     }
 
     /**
-     * Adds the filename (without extension) as the citation title if there is 
no title, or as the identifier otherwise.
+     * Adds the filename (without extension) as the citation title if there 
are no titles, or as the identifier otherwise.
      * This method should be invoked last, after {@code DataStore} 
implementation did its best effort for adding a title.
      * The intent is actually to provide an identifier, but since the title is 
mandatory in ISO 19115 metadata, providing
      * only an identifier without title would be invalid.
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/FeatureIterator.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/FeatureIterator.java
index 33bc9dd67e..73db26c7a0 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/FeatureIterator.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/FeatureIterator.java
@@ -119,7 +119,7 @@ class FeatureIterator implements Spliterator<Feature> {
                         break;
                     }
                     /*
-                     * If there is no time columns, then this column may be 
the trajectory (note that allowing
+                     * If there are no time columns, then this column may be 
the trajectory (note that allowing
                      * CSV files without time is obviously a departure from 
Moving Features specification.
                      * The intent is to have a CSV format applicable to other 
features than moving ones).
                      * Fall through in order to process trajectory.
@@ -131,7 +131,7 @@ class FeatureIterator implements Spliterator<Feature> {
                         break;
                     }
                     /*
-                     * If there is no trajectory columns, than this column is 
a custum attribute.
+                     * If there are no trajectory columns, than this column is 
a custum attribute.
                      * CSV files without trajectories are not compliant with 
Moving Feature spec.,
                      * but we try to keep this reader a little bit more 
generic.
                      */
@@ -210,7 +210,7 @@ class FeatureIterator implements Spliterator<Feature> {
      *
      * @param  action  the action to execute.
      * @param  all     {@code true} for executing the given action on all 
remaining features.
-     * @return {@code false} if there is no remaining feature after this 
method call.
+     * @return {@code false} if there are no remaining features after this 
method call.
      * @throws IOException if an I/O error occurred while reading a feature.
      * @throws IllegalArgumentException if parsing of a number failed, or 
other error.
      * @throws DateTimeException if parsing of a date failed.
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/MovingFeatureIterator.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/MovingFeatureIterator.java
index 90262bc88a..ad85cad854 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/MovingFeatureIterator.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/MovingFeatureIterator.java
@@ -118,7 +118,7 @@ final class MovingFeatureIterator extends FeatureIterator 
implements Consumer<Lo
      *
      * @param  action  the action to execute as soon as the {@code mfidref} 
change, or {@code null} if none.
      * @param  all     {@code true} for executing the given action on all 
remaining features.
-     * @return {@code false} if there is no remaining feature after this 
method call.
+     * @return {@code false} if there are no remaining features after this 
method call.
      * @throws IOException if an I/O error occurred while reading a feature.
      * @throws IllegalArgumentException if parsing of a number failed, or 
other error.
      * @throws DateTimeException if parsing of a date failed.
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStore.java 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStore.java
index fe9c6f037b..8d5e6e0abb 100644
--- a/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStore.java
+++ b/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStore.java
@@ -510,7 +510,7 @@ public abstract class DataStore implements Resource, 
Localized, AutoCloseable {
      *
      * <h4>Warning events</h4>
      * If {@code eventType} is <code>{@linkplain 
org.apache.sis.storage.event.WarningEvent}.class</code>
-     * and if, after this method invocation, there is no remaining listener 
for warning events,
+     * and if, after this method invocation, there are no remaining listeners 
for warning events,
      * then this {@code DataStore} will send future warnings to the loggers.
      *
      * @param  <T>        compile-time value of the {@code eventType} argument.
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreProvider.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreProvider.java
index ec30d09c01..e2e9e96d7b 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreProvider.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreProvider.java
@@ -636,7 +636,7 @@ public abstract class DataStoreProvider {
      * of the subclass of this {@code DataStoreProvider} instance. Subclasses 
should override
      * this method if they can provide a more specific logger.</p>
      *
-     * @return the logger to use as a fallback (when there is no listeners) 
for warning messages.
+     * @return the logger to use as a fallback (when there are no listeners) 
for warning messages.
      *
      * @see org.apache.sis.storage.event.StoreListeners#getLogger()
      *
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/FeatureQuery.java 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/FeatureQuery.java
index 799c346a6c..d8344080d6 100644
--- a/storage/sis-storage/src/main/java/org/apache/sis/storage/FeatureQuery.java
+++ b/storage/sis-storage/src/main/java/org/apache/sis/storage/FeatureQuery.java
@@ -113,7 +113,7 @@ public class FeatureQuery extends Query implements 
Cloneable, Serializable {
 
     /**
      * The number of feature instances to skip from the beginning.
-     * This is zero if there is no instance to skip.
+     * This is zero if there are no instances to skip.
      *
      * @see #getOffset()
      * @see #setOffset(long)
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/Resource.java 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/Resource.java
index 42010c3896..637812a701 100644
--- a/storage/sis-storage/src/main/java/org/apache/sis/storage/Resource.java
+++ b/storage/sis-storage/src/main/java/org/apache/sis/storage/Resource.java
@@ -181,7 +181,7 @@ public interface Resource {
      *
      * <h4>Warning events</h4>
      * If {@code eventType} is <code>{@linkplain 
org.apache.sis.storage.event.WarningEvent}.class</code>
-     * and if, after this method invocation, there is no remaining listener 
for warning events,
+     * and if, after this method invocation, there are no remaining listeners 
for warning events,
      * then this {@code Resource} will send future warnings to the loggers.
      *
      * @param  <T>        compile-time value of the {@code eventType} argument.
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/WritableGridCoverageResource.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/WritableGridCoverageResource.java
index cd5c04b1fa..50248ad92c 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/WritableGridCoverageResource.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/WritableGridCoverageResource.java
@@ -68,7 +68,7 @@ public interface WritableGridCoverageResource extends 
GridCoverageResource {
          * <ul>
          *   <li>If a coverage already exists in the {@link 
GridCoverageResource}, then it will be erased.
          *       The existing data will be replaced by the new coverage.</li>
-         *   <li>If there are no existing coverage in the {@link 
GridCoverageResource},
+         *   <li>If there are no existing coverages in the {@link 
GridCoverageResource},
          *       then the new coverage will be inserted as if this option was 
not provided.</li>
          * </ul>
          */
@@ -85,7 +85,7 @@ public interface WritableGridCoverageResource extends 
GridCoverageResource {
          *       with the new data.</li>
          * </ul>
          *
-         * If there are no previous coverage, then the new coverage is 
inserted as if this option was not provided.
+         * If there are no previous coverages, then the new coverage is 
inserted as if this option was not provided.
          */
         UPDATE
     }
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/event/StoreListeners.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/event/StoreListeners.java
index c0396dfc9a..cf338bb321 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/event/StoreListeners.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/event/StoreListeners.java
@@ -348,7 +348,7 @@ public class StoreListeners implements Localized {
      *   <li>the {@code LogRecord} does not {@linkplain 
LogRecord#getLoggerName() specify a logger}.</li>
      * </ul>
      *
-     * @return the logger where to send the warnings when there is no other 
destination.
+     * @return the logger where to send the warnings when there are no other 
destinations.
      *
      * @see DataStoreProvider#getLogger()
      *
@@ -443,7 +443,7 @@ public class StoreListeners implements Localized {
      * If both are non-null, then the exception message will be concatenated 
after the given message.
      *
      * <h4>Stack trace omission</h4>
-     * If there is no registered listener for the {@link WarningEvent} type,
+     * If there are no registered listeners for the {@link WarningEvent} type,
      * then the {@link LogRecord} will be sent to a {@link Logger} but 
<em>without</em> the stack trace.
      * This is done that way because stack traces consume lot of space in the 
logging files, while being considered
      * implementation details in the context of {@code StoreListeners} (on the 
assumption that the logging message
@@ -675,8 +675,8 @@ public class StoreListeners implements Localized {
      *
      * <h4>Warning events</h4>
      * If {@code eventType} is <code>{@linkplain WarningEvent}.class</code> 
and if, after this method invocation,
-     * there is no remaining listener for warning events, then this {@code 
StoreListeners} will send future warnings
-     * to the loggers.
+     * there are no remaining listeners for warning events, then this {@code 
StoreListeners} will send future
+     * warnings to the loggers.
      *
      * @param  <T>        compile-time value of the {@code eventType} argument.
      * @param  eventType  type of {@link StoreEvent} which were listened (can 
not be {@code null}).
diff --git 
a/storage/sis-storage/src/test/java/org/apache/sis/storage/DataStoreMock.java 
b/storage/sis-storage/src/test/java/org/apache/sis/storage/DataStoreMock.java
index d14b8c5b70..a51a921ced 100644
--- 
a/storage/sis-storage/src/test/java/org/apache/sis/storage/DataStoreMock.java
+++ 
b/storage/sis-storage/src/test/java/org/apache/sis/storage/DataStoreMock.java
@@ -54,7 +54,7 @@ public final strictfp class DataStoreMock extends DataStore {
     }
 
     /**
-     * Returns empty optional since there is no open parameters.
+     * Returns empty optional since there are no open parameters.
      */
     @Override
     public Optional<ParameterValueGroup> getOpenParameters() {
diff --git 
a/storage/sis-storage/src/test/java/org/apache/sis/test/storage/SubsampledImage.java
 
b/storage/sis-storage/src/test/java/org/apache/sis/test/storage/SubsampledImage.java
index bf4a6f4b62..34fbb0f457 100644
--- 
a/storage/sis-storage/src/test/java/org/apache/sis/test/storage/SubsampledImage.java
+++ 
b/storage/sis-storage/src/test/java/org/apache/sis/test/storage/SubsampledImage.java
@@ -237,7 +237,7 @@ final class SubsampledImage extends PlanarImage {
      * in principle we should subtract the <var>subsampling offset</var>. 
However that offset is
      * zero in the context of {@link CoverageReadConsistency} test, because 
coordinates (0,0) of
      * {@linkplain #source} image is the first pixel in the Area Of Interest 
specified by user,
-     * so there is no more offset at this stage. Note that we are talking 
about offset in image
+     * so there are no more offsets at this stage. Note that we are talking 
about offset in image
      * coordinate system, not to be confused with offset relative to the data 
bank
      * (given to the {@link SampleModel} at construction time).</div>
      */
diff --git 
a/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/Reader.java
 
b/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/Reader.java
index a1d95be42e..ff5cd7d89c 100644
--- 
a/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/Reader.java
+++ 
b/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/Reader.java
@@ -309,8 +309,8 @@ parse:  while (reader.hasNext()) {
     }
 
     /**
-     * Performs the given action on the next feature instance, or returns 
{@code null} if there is no more
-     * feature to parse.
+     * Performs the given action on the next feature instance, or returns 
{@code null} if there are no more
+     * features to parse.
      *
      * @param  action  the action to perform on the next feature instances.
      * @return {@code true} if a feature has been found, or {@code false} if 
we reached the end of GPX file.
diff --git 
a/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/xml/stream/StaxStreamReader.java
 
b/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/xml/stream/StaxStreamReader.java
index 670958b091..cc127603a6 100644
--- 
a/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/xml/stream/StaxStreamReader.java
+++ 
b/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/xml/stream/StaxStreamReader.java
@@ -158,8 +158,8 @@ public abstract class StaxStreamReader extends StaxStreamIO 
implements XMLStream
     }
 
     /**
-     * Performs the given action on the next feature instance, or returns 
{@code null} if there is no more
-     * feature to parse.
+     * Performs the given action on the next feature instance, or returns 
{@code null} if there are no more
+     * features to parse.
      *
      * @param  action  the action to perform on the next feature instances.
      * @return {@code true} if a feature has been found, or {@code false} if 
we reached the end of XML file.

Reply via email to