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
The following commit(s) were added to refs/heads/geoapi-4.0 by this push:
new 8eceb4133a Replace `Path` by `File` in `ResourceEvent` for resolving
serialization warning. The `File` object was what we needed for storing in
`RecentFiles` anyway. Opportunistic documentation cleanup.
8eceb4133a is described below
commit 8eceb4133aeb9d02cf5869f2957baba273bdf319
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Sun Jan 15 01:37:29 2023 +0100
Replace `Path` by `File` in `ResourceEvent` for resolving serialization
warning.
The `File` object was what we needed for storing in `RecentFiles` anyway.
Opportunistic documentation cleanup.
---
.../main/java/org/apache/sis/gui/RecentFiles.java | 10 ++-----
.../org/apache/sis/gui/dataset/PathAction.java | 12 ++++++--
.../org/apache/sis/gui/dataset/ResourceCell.java | 4 +--
.../org/apache/sis/gui/dataset/ResourceEvent.java | 33 +++++++++++++---------
.../org/apache/sis/gui/dataset/package-info.java | 2 +-
.../sis/internal/referencing/Arithmetic.java | 2 +-
.../referencing/provider/DatumShiftGridFile.java | 2 ++
.../referencing/provider/DatumShiftGridLoader.java | 2 +-
.../main/java/org/apache/sis/math/Fraction.java | 2 +-
.../apache/sis/measure/DefaultQuantityFactory.java | 2 +-
.../org/apache/sis/measure/QuantityFormat.java | 4 +--
.../java/org/apache/sis/measure/UnitRegistry.java | 2 +-
.../src/main/java/org/apache/sis/util/Numbers.java | 2 +-
.../internal/storage/io/FileCacheByteChannel.java | 10 +++----
.../sis/internal/storage/io/HttpByteChannel.java | 2 +-
.../sis/internal/storage/io/IOUtilities.java | 21 --------------
.../org/apache/sis/storage/DataStoreProvider.java | 8 +++---
.../org/apache/sis/storage/ProbeInputStream.java | 2 ++
.../java/org/apache/sis/storage/ProbeReader.java | 2 ++
.../storage/io/FileCacheByteChannelTest.java | 2 +-
20 files changed, 61 insertions(+), 65 deletions(-)
diff --git
a/application/sis-javafx/src/main/java/org/apache/sis/gui/RecentFiles.java
b/application/sis-javafx/src/main/java/org/apache/sis/gui/RecentFiles.java
index 7e20c151c2..9535ffde4a 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/RecentFiles.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/RecentFiles.java
@@ -17,7 +17,6 @@
package org.apache.sis.gui;
import java.io.File;
-import java.nio.file.Path;
import java.util.Set;
import java.util.StringJoiner;
import javafx.event.ActionEvent;
@@ -36,7 +35,7 @@ import org.apache.sis.util.ArraysExt;
* Manages a list of recently opened files. The list of files is initialized
from user preferences.
*
* @author Martin Desruisseaux (Geomatys)
- * @version 1.2
+ * @version 1.4
* @since 1.1
*/
final class RecentFiles implements EventHandler<ActionEvent> {
@@ -116,11 +115,8 @@ final class RecentFiles implements
EventHandler<ActionEvent> {
* the latest item is discarded.
*/
private void touched(final ResourceEvent event, final boolean closed) {
- final Path path = event.getResourcePath();
- final File file;
- try {
- file = path.toFile();
- } catch (UnsupportedOperationException e) {
+ final File file = event.getResourceFile().orElse(null);
+ if (file == null) {
// Recently used URIs are not saved here.
return;
}
diff --git
a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/PathAction.java
b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/PathAction.java
index d6a49eb7e0..aba7d0ab10 100644
---
a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/PathAction.java
+++
b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/PathAction.java
@@ -32,6 +32,7 @@ import javafx.scene.input.ClipboardContent;
import org.apache.sis.internal.gui.ExceptionReporter;
import org.apache.sis.internal.storage.ResourceOnFileSystem;
import org.apache.sis.internal.storage.URIDataStore;
+import org.apache.sis.internal.storage.io.IOUtilities;
import org.apache.sis.storage.DataStoreException;
import org.apache.sis.storage.Resource;
@@ -42,7 +43,7 @@ import org.apache.sis.storage.Resource;
* or open the containing folder using native file browser.
*
* @author Martin Desruisseaux (Geomatys)
- * @version 1.2
+ * @version 1.4
* @since 1.1
*/
final class PathAction implements EventHandler<ActionEvent> {
@@ -69,9 +70,16 @@ final class PathAction implements EventHandler<ActionEvent> {
/**
* Whether the "Open containing folder" operation is disabled.
*/
- static final boolean isBrowseDisabled = !(Desktop.isDesktopSupported() &&
+ private static final boolean isBrowseDisabled =
!(Desktop.isDesktopSupported() &&
Desktop.getDesktop().isSupported(Desktop.Action.BROWSE_FILE_DIR));
+ /**
+ * Returns {@code true} if {@code PathAction} cannot handle the given path
for browsing.
+ */
+ static boolean isBrowseDisabled(final Object path) {
+ return PathAction.isBrowseDisabled || IOUtilities.toPathOrNull(path)
== null;
+ }
+
/**
* Invoked when the user selected "Copy file path" item in the contextual
menu of a {@link ResourceTree} cell.
* This method copies the path of the selected resource to the clipboard.
diff --git
a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceCell.java
b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceCell.java
index be4635181b..2078a769fc 100644
---
a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceCell.java
+++
b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceCell.java
@@ -47,7 +47,7 @@ import org.apache.sis.util.resources.Vocabulary;
* The same call may be recycled many times for different {@link ResourceItem}
data.
*
* @author Martin Desruisseaux (Geomatys)
- * @version 1.3
+ * @version 1.4
*
* @see ResourceItem
*
@@ -168,7 +168,7 @@ final class ResourceCell extends TreeCell<Resource> {
}
final ObservableList<MenuItem> items = menu.getItems();
items.get(COPY_PATH).setDisable(!IOUtilities.isKindOfPath(path));
- items.get(OPEN_FOLDER).setDisable(PathAction.isBrowseDisabled
|| IOUtilities.toFile(path) == null);
+
items.get(OPEN_FOLDER).setDisable(PathAction.isBrowseDisabled(path));
final CheckMenuItem aggregated = (CheckMenuItem)
items.get(AGGREGATED);
aggregated.setDisable(!aggregatable);
aggregated.setSelected(aggregatable &&
item.isView(TreeViewType.AGGREGATION));
diff --git
a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceEvent.java
b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceEvent.java
index 1f44d45726..c0107a1bbd 100644
---
a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceEvent.java
+++
b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceEvent.java
@@ -16,6 +16,8 @@
*/
package org.apache.sis.gui.dataset;
+import java.io.File;
+import java.util.Optional;
import java.nio.file.Path;
import javafx.event.Event;
import javafx.event.EventType;
@@ -24,10 +26,10 @@ import javafx.event.EventType;
/**
* Event sent when a resource is loaded or closed. The {@linkplain
#getSource() source}
* of this event are the {@link ResourceTree} instance on which handlers are
registered.
- * The event contains a {@link Path} to the resource opened or closed.
+ * The event contains a {@link File} to the resource opened or closed.
*
* @author Martin Desruisseaux (Geomatys)
- * @version 1.2
+ * @version 1.4
*
* @see ResourceTree#onResourceLoaded
* @see ResourceTree#onResourceClosed
@@ -39,7 +41,7 @@ public class ResourceEvent extends Event {
/**
* For cross-version compatibility.
*/
- private static final long serialVersionUID = -425980517754215310L;
+ private static final long serialVersionUID = 1363812583271647542L;
/**
* The type for load events.
@@ -56,12 +58,9 @@ public class ResourceEvent extends Event {
static final EventType<ResourceEvent> CLOSED = new EventType<>("CLOSED");
/**
- * Path to the resource being loaded or closed.
- *
- * @todo The default implementation provided by the JDK is not
serializable.
- * We have no workaround at this time.
+ * Path to the resource being opened or closed, or {@code null} if unknown.
*/
- private final Path path;
+ private final File file;
/**
* Creates a new event.
@@ -72,15 +71,23 @@ public class ResourceEvent extends Event {
*/
ResourceEvent(final ResourceTree source, final Path path, final
EventType<ResourceEvent> type) {
super(source, null, type);
- this.path = path;
+ File f;
+ try {
+ f = path.toFile();
+ } catch (UnsupportedOperationException e) {
+ f = null;
+ }
+ file = f;
}
/**
- * Returns the path to the resource being loaded or closed.
+ * Returns the path to the resource being opened or closed.
+ *
+ * @return path to the resource being opened or closed.
*
- * @return path to the resource being loaded or closed.
+ * @since 1.4
*/
- public Path getResourcePath() {
- return path;
+ public Optional<File> getResourceFile() {
+ return Optional.ofNullable(file);
}
}
diff --git
a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/package-info.java
b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/package-info.java
index 2ebdaecc2c..81a21094de 100644
---
a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/package-info.java
+++
b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/package-info.java
@@ -24,7 +24,7 @@
* @author Smaniotto Enzo (GSoC)
* @author Johann Sorel (Geomatys)
* @author Martin Desruisseaux (Geomatys)
- * @version 1.3
+ * @version 1.4
* @since 1.1
*/
package org.apache.sis.gui.dataset;
diff --git
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/Arithmetic.java
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/Arithmetic.java
index 22e5201cef..d6ffd7d4ed 100644
---
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/Arithmetic.java
+++
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/Arithmetic.java
@@ -114,7 +114,7 @@ public enum Arithmetic {
* If the conversion is not exact, then this method returns {@code null}.
*
* @param element the value to return as a long integer, or {@code null}
if zero.
- * @return the value as a long integer, or {@code null} if it can not be
converted.
+ * @return the value as a long integer, or {@code null} if it cannot be
converted.
*/
private static Long tryLongValue(final Number element) {
if (element == null || element instanceof Long) {
diff --git
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/DatumShiftGridFile.java
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/DatumShiftGridFile.java
index 5b5cf52834..1075976a75 100644
---
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/DatumShiftGridFile.java
+++
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/DatumShiftGridFile.java
@@ -117,6 +117,8 @@ abstract class DatumShiftGridFile<C extends Quantity<C>, T
extends Quantity<T>>
* The files from which the grid has been loaded. This is not used
directly by this class
* (except for {@link #equals(Object)} and {@link #hashCode()}), but can
be used by math
* transform for setting the parameter values. Shall never be null and
never empty.
+ *
+ * @see <a href="https://issues.apache.org/jira/browse/SIS-569">SIS-569</a>
*/
private final URI[] files;
diff --git
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/DatumShiftGridLoader.java
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/DatumShiftGridLoader.java
index 1db194ec33..ca42083b37 100644
---
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/DatumShiftGridLoader.java
+++
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/DatumShiftGridLoader.java
@@ -173,7 +173,7 @@ abstract class DatumShiftGridLoader {
*
* @param path the path from where to read bytes.
* @return a channel for reading bytes from the given path.
- * @throws IOException if the channel can not be created.
+ * @throws IOException if the channel cannot be created.
*/
static ReadableByteChannel newByteChannel(final URI path) throws
IOException {
try {
diff --git a/core/sis-utility/src/main/java/org/apache/sis/math/Fraction.java
b/core/sis-utility/src/main/java/org/apache/sis/math/Fraction.java
index 9c41ea3bd2..5805c1ac5d 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/math/Fraction.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/math/Fraction.java
@@ -80,7 +80,7 @@ public final class Fraction extends Number implements
Comparable<Fraction>, Seri
* @param numerator numerator of the fraction to return.
* @param denominator denominator of the fraction to return.
* @return the simplified fraction.
- * @throws ArithmeticException if the numerator and denominator can not be
represented by 32 bit integers.
+ * @throws ArithmeticException if the numerator and denominator cannot be
represented by 32 bit integers.
*
* @since 1.4
*/
diff --git
a/core/sis-utility/src/main/java/org/apache/sis/measure/DefaultQuantityFactory.java
b/core/sis-utility/src/main/java/org/apache/sis/measure/DefaultQuantityFactory.java
index 915e151a72..943088f37d 100644
---
a/core/sis-utility/src/main/java/org/apache/sis/measure/DefaultQuantityFactory.java
+++
b/core/sis-utility/src/main/java/org/apache/sis/measure/DefaultQuantityFactory.java
@@ -23,7 +23,7 @@ import javax.measure.spi.QuantityFactory;
/**
- * Default factory when {@link SystemUnit} can not be used directly.
+ * Default factory when {@link SystemUnit} cannot be used directly.
*
* @author Martin Desruisseaux (MPO, Geomatys)
* @version 1.4
diff --git
a/core/sis-utility/src/main/java/org/apache/sis/measure/QuantityFormat.java
b/core/sis-utility/src/main/java/org/apache/sis/measure/QuantityFormat.java
index a12835a01a..8adfd750d2 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/QuantityFormat.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/QuantityFormat.java
@@ -158,7 +158,7 @@ public class QuantityFormat extends Format implements
javax.measure.format.Quant
*
* @param source the text to parse.
* @return the quantity parsed from the specified text.
- * @throws MeasurementParseException if the given text can not be parsed.
+ * @throws MeasurementParseException if the given text cannot be parsed.
* @since 1.4
*/
@Override
@@ -173,7 +173,7 @@ public class QuantityFormat extends Format implements
javax.measure.format.Quant
* @param source the text, part of which should be parsed.
* @param pos index and error index information.
* @return the quantity parsed from the specified character sub-sequence.
- * @throws MeasurementParseException if the given text can not be parsed.
+ * @throws MeasurementParseException if the given text cannot be parsed.
* @since 1.4
*/
@Override
diff --git
a/core/sis-utility/src/main/java/org/apache/sis/measure/UnitRegistry.java
b/core/sis-utility/src/main/java/org/apache/sis/measure/UnitRegistry.java
index 0749a07cae..1fed3d861f 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/UnitRegistry.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/UnitRegistry.java
@@ -255,7 +255,7 @@ final class UnitRegistry implements SystemOfUnits,
Serializable {
*
* @param symbols the string representation of a unit.
* @return the unit with the given string representation,
- * or {@code null} if the give symbols can not be parsed.
+ * or {@code null} if the give symbols cannot be parsed.
*/
@Override
public Unit<?> getUnit(final String symbols) {
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/Numbers.java
b/core/sis-utility/src/main/java/org/apache/sis/util/Numbers.java
index 6ae0d9ebdc..349489de61 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/Numbers.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/Numbers.java
@@ -244,7 +244,7 @@ public final class Numbers extends Static {
* @param value the value to return as a long integer.
* @return the value rounded to nearest long integer.
* @throws NullPointerException if the given number is {@code null}.
- * @throws ArithmeticException if the value can not be represented as a
long integer.
+ * @throws ArithmeticException if the value cannot be represented as a
long integer.
*
* @see Math#round(double)
* @see BigDecimal#longValueExact()
diff --git
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/io/FileCacheByteChannel.java
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/io/FileCacheByteChannel.java
index 6189da27c7..986b804628 100644
---
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/io/FileCacheByteChannel.java
+++
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/io/FileCacheByteChannel.java
@@ -285,7 +285,7 @@ public abstract class FileCacheByteChannel implements
SeekableByteChannel {
* The source of bytes will be provided by {@link #openConnection(long,
long)}.
*
* @param prefix prefix of the temporary file to create.
- * @throws IOException if the temporary file can not be created.
+ * @throws IOException if the temporary file cannot be created.
*/
protected FileCacheByteChannel(final String prefix) throws IOException {
rangesOfAvailableBytes = RangeSet.create(Long.class, true, false);
@@ -313,7 +313,7 @@ public abstract class FileCacheByteChannel implements
SeekableByteChannel {
* @param end position of the last byte to read with the returned
stream (inclusive),
* or {@link Long#MAX_VALUE} for end of stream.
* @return information about the input stream providing the bytes to read
starting at the given start position.
- * @throws IOException if the connection can not be established.
+ * @throws IOException if the connection cannot be established.
*/
protected abstract Connection openConnection(long start, long end) throws
IOException;
@@ -410,7 +410,7 @@ public abstract class FileCacheByteChannel implements
SeekableByteChannel {
* {@link #position} (it may be 0).
*
* @return the opened connection (never {@code null}).
- * @throws IOException if the connection can not be established.
+ * @throws IOException if the connection cannot be established.
*/
private Connection openConnection() throws IOException {
long end = endOfInterest;
@@ -510,7 +510,7 @@ public abstract class FileCacheByteChannel implements
SeekableByteChannel {
}
/*
* At this point we need to download data from the input stream.
- * If previous connection can not be used, open a new one for the
range of bytes to read.
+ * If previous connection cannot be used, open a new one for the range
of bytes to read.
* Then skip all bytes between the current position and the requested
position.
* Those bytes will be saved in the cache.
*/
@@ -693,7 +693,7 @@ public abstract class FileCacheByteChannel implements
SeekableByteChannel {
/**
* Notifies that the connection has been used and should not be closed
before some timeout.
* This method may schedule a task to be executed in a background thread
after the timeout.
- * If the connection can not read sub-ranges of bytes, then this method
does nothing because
+ * If the connection cannot read sub-ranges of bytes, then this method
does nothing because
* reopening a new connection would be costly.
*/
private void usedConnection() {
diff --git
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/io/HttpByteChannel.java
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/io/HttpByteChannel.java
index 2af097c789..b9e91523a0 100644
---
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/io/HttpByteChannel.java
+++
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/io/HttpByteChannel.java
@@ -77,7 +77,7 @@ final class HttpByteChannel extends FileCacheByteChannel {
*
* @param name data store name to report in case of failure.
* @param path URL to the file to read.
- * @throws IOException if the temporary file can not be created.
+ * @throws IOException if the temporary file cannot be created.
*/
public HttpByteChannel(final String name, final URI path) throws
IOException {
super("http-");
diff --git
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/io/IOUtilities.java
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/io/IOUtilities.java
index 60b852f4bc..7e4ca240b6 100644
---
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/io/IOUtilities.java
+++
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/io/IOUtilities.java
@@ -201,27 +201,6 @@ public final class IOUtilities extends Static {
return null;
}
- /**
- * Returns the given path as a {@link File}, or {@code null} if it cannot
be converted.
- *
- * @param path the object to convert to a {@link File}. Can be {@code
null}.
- * @return the given path as a {@link File}, or {@code null} if it cannot
be converted.
- */
- public static File toFile(final Object path) {
- if (path instanceof File) {
- return (File) path;
- } else if (path instanceof Path) try {
- return ((Path) path).toFile();
- } catch (UnsupportedOperationException e) {
- // Ignore.
- } else if (path instanceof URI) try {
- return new File((URI) path);
- } catch (IllegalArgumentException e) {
- // Ignore.
- }
- return null;
- }
-
/**
* Converts the given {@link URI} to a {@link URL} with the same path
except for the file extension,
* which is replaced by the given extension. This method is used for
opening auxiliary files such as
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 de42ec7c41..92950cfb09 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
@@ -336,7 +336,7 @@ public abstract class DataStoreProvider {
final Class<S> type, final Prober<? super S> prober) throws
DataStoreException
{
ArgumentChecks.ensureNonNull("prober", prober);
- boolean undetermined = false;
+ boolean undetermined;
/*
* Synchronization is not a documented feature for now because the
policy may change in future version.
* Current version uses the storage source as the synchronization lock
because using `StorageConnector`
@@ -446,7 +446,7 @@ public abstract class DataStoreProvider {
*/
final ProbeInputStream stream = new
ProbeInputStream(connector, (InputStream) input);
result = prober.test(type.cast(stream));
- stream.close(); // Reset (not close) the
wrapped stream.
+ stream.close(); // No "try with resource". See
`ProbeInputStream.close()` contract.
} else if (input instanceof RewindableLineReader) {
/*
* `Reader` supports at most one mark. So we keep it for
ourselves and prevent users
@@ -458,9 +458,9 @@ public abstract class DataStoreProvider {
result = prober.test(input);
r.protectedReset();
} else if (input instanceof Reader) {
- final Reader stream = new ProbeReader(connector, (Reader)
input);
+ final ProbeReader stream = new ProbeReader(connector, (Reader)
input);
result = prober.test(type.cast(stream));
- stream.close(); // Reset (not close) the
wrapped reader.
+ stream.close(); // No "try with resource". See
`ProbeReader.close()` contract.
} else {
/*
* All other cases are objects like File, URL, etc. which can
be used without mark/reset.
diff --git
a/storage/sis-storage/src/main/java/org/apache/sis/storage/ProbeInputStream.java
b/storage/sis-storage/src/main/java/org/apache/sis/storage/ProbeInputStream.java
index 812b0488dd..dee9603fa9 100644
---
a/storage/sis-storage/src/main/java/org/apache/sis/storage/ProbeInputStream.java
+++
b/storage/sis-storage/src/main/java/org/apache/sis/storage/ProbeInputStream.java
@@ -75,6 +75,8 @@ final class ProbeInputStream extends FilterInputStream {
/**
* Closes this stream and resets the wrapped stream to its original
position.
+ * The wrapped stream is <em>not</em> closed, so this method does not
really
+ * release any resource. Closing the wrapped stream is caller's
responsibility.
*/
@Override
public void close() throws IOException {
diff --git
a/storage/sis-storage/src/main/java/org/apache/sis/storage/ProbeReader.java
b/storage/sis-storage/src/main/java/org/apache/sis/storage/ProbeReader.java
index be36208eb7..5f25cba743 100644
--- a/storage/sis-storage/src/main/java/org/apache/sis/storage/ProbeReader.java
+++ b/storage/sis-storage/src/main/java/org/apache/sis/storage/ProbeReader.java
@@ -77,6 +77,8 @@ final class ProbeReader extends FilterReader {
/**
* Closes this reader and resets the wrapped reader to its original
position.
+ * The wrapped reader is <em>not</em> closed, so this method does not
really
+ * release any resource. Closing the wrapped reader is caller's
responsibility.
*/
@Override
public void close() throws IOException {
diff --git
a/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/io/FileCacheByteChannelTest.java
b/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/io/FileCacheByteChannelTest.java
index 043d6c7990..fc7c8ad3c9 100644
---
a/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/io/FileCacheByteChannelTest.java
+++
b/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/io/FileCacheByteChannelTest.java
@@ -64,7 +64,7 @@ public final class FileCacheByteChannelTest extends TestCase {
*
* @param test a name to use for identifying the test in error
messages.
* @param rg generator of random numbers for controlling the
behavior of this channel.
- * @throws IOException if the temporary file can not be created.
+ * @throws IOException if the temporary file cannot be created.
*/
Implementation(final String test, final Random rg) throws IOException {
super("Test-");