This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-io.git
The following commit(s) were added to refs/heads/master by this push: new 359b143 [IO-758] Deprecate PathUtils.NOFOLLOW_LINK_OPTION_ARRAY in favor of noFollowLinkOptionArray(). 359b143 is described below commit 359b1430396e98b9b29e309e1cba9edc77e64860 Author: Gary Gregory <gardgreg...@gmail.com> AuthorDate: Sun Feb 6 16:55:31 2022 -0500 [IO-758] Deprecate PathUtils.NOFOLLOW_LINK_OPTION_ARRAY in favor of noFollowLinkOptionArray(). --- src/changes/changes.xml | 3 ++ .../commons/io/file/DeletingPathVisitor.java | 4 +-- .../java/org/apache/commons/io/file/PathUtils.java | 35 ++++++++++++++-------- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 8534971..b004d78 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -147,6 +147,9 @@ The <action> type attribute can be add,update,fix,remove. <action issue="IO-484" dev="ggregory" type="fix" due-to="David Huang, Gary Gregory"> IOCase.isCaseSensitive(IOCase) result is backward #325. </action> + <action issue="IO-758" dev="ggregory" type="fix" due-to="Marcono1234, Gary Gregory"> + Deprecate PathUtils.NOFOLLOW_LINK_OPTION_ARRAY in favor of noFollowLinkOptionArray(). + </action> <!-- ADD --> <action issue="IO-726" dev="ggregory" type="fix" due-to="shollander, Gary Gregory"> Add MemoryMappedFileInputStream #215. diff --git a/src/main/java/org/apache/commons/io/file/DeletingPathVisitor.java b/src/main/java/org/apache/commons/io/file/DeletingPathVisitor.java index 793d2e1..08c6571 100644 --- a/src/main/java/org/apache/commons/io/file/DeletingPathVisitor.java +++ b/src/main/java/org/apache/commons/io/file/DeletingPathVisitor.java @@ -67,7 +67,7 @@ public class DeletingPathVisitor extends CountingPathVisitor { * @since 2.8.0 */ public DeletingPathVisitor(final PathCounters pathCounter, final DeleteOption[] deleteOption, final String... skip) { - this(pathCounter, PathUtils.NOFOLLOW_LINK_OPTION_ARRAY, deleteOption, skip); + this(pathCounter, PathUtils.noFollowLinkOptionArray(), deleteOption, skip); } /** @@ -86,7 +86,7 @@ public class DeletingPathVisitor extends CountingPathVisitor { this.skip = temp; this.overrideReadOnly = StandardDeleteOption.overrideReadOnly(deleteOption); // TODO Files.deleteIfExists() never follows links, so use LinkOption.NOFOLLOW_LINKS in other calls to Files. - this.linkOptions = linkOptions == null ? PathUtils.NOFOLLOW_LINK_OPTION_ARRAY : linkOptions.clone(); + this.linkOptions = linkOptions == null ? PathUtils.noFollowLinkOptionArray() : linkOptions.clone(); } /** diff --git a/src/main/java/org/apache/commons/io/file/PathUtils.java b/src/main/java/org/apache/commons/io/file/PathUtils.java index a88781a..a1cb92d 100644 --- a/src/main/java/org/apache/commons/io/file/PathUtils.java +++ b/src/main/java/org/apache/commons/io/file/PathUtils.java @@ -175,7 +175,9 @@ public final class PathUtils { * {@link LinkOption} array for {@link LinkOption#NOFOLLOW_LINKS}. * * @since 2.9.0 + * @deprecated Use {@link #noFollowLinkOptionArray()}. */ + @Deprecated public static final LinkOption[] NOFOLLOW_LINK_OPTION_ARRAY = {LinkOption.NOFOLLOW_LINKS}; /** @@ -198,6 +200,13 @@ public final class PathUtils { public static final Path[] EMPTY_PATH_ARRAY = {}; /** + * Does allow to instantiate. + */ + private PathUtils() { + // do not instantiate. + } + + /** * Accumulates file tree information in a {@link AccumulatorPathVisitor}. * * @param directory The directory to accumulate information. @@ -363,10 +372,6 @@ public final class PathUtils { return parent == null ? null : Files.createDirectories(parent, attrs); } - private static Path readIfSymbolicLink(final Path path) throws IOException { - return Files.isSymbolicLink(path) ? Files.readSymbolicLink(path) : path; - } - /** * Gets the current directory. * @@ -463,7 +468,7 @@ public final class PathUtils { * @since 2.8.0 */ public static PathCounters deleteDirectory(final Path directory, final DeleteOption... deleteOptions) throws IOException { - final LinkOption[] linkOptions = PathUtils.NOFOLLOW_LINK_OPTION_ARRAY; + final LinkOption[] linkOptions = PathUtils.noFollowLinkOptionArray(); // POSIX ops will noop on non-POSIX. return withPosixFileAttributes(getParent(directory), linkOptions, overrideReadOnly(deleteOptions), pfa -> visitFileTree(new DeletingPathVisitor(Counters.longPathCounters(), linkOptions, deleteOptions), directory).getPathCounters()); @@ -507,7 +512,7 @@ public final class PathUtils { */ public static PathCounters deleteFile(final Path file, final DeleteOption... deleteOptions) throws IOException { // Files.deleteIfExists() never follows links, so use LinkOption.NOFOLLOW_LINKS in other calls to Files. - return deleteFile(file, NOFOLLOW_LINK_OPTION_ARRAY, deleteOptions); + return deleteFile(file, noFollowLinkOptionArray(), deleteOptions); } /** @@ -1104,6 +1109,13 @@ public final class PathUtils { return Files.newOutputStream(path, list.toArray(EMPTY_OPEN_OPTION_ARRAY)); } + /** + * @return the nofollowLinkOptionArray + */ + public static LinkOption[] noFollowLinkOptionArray() { + return NOFOLLOW_LINK_OPTION_ARRAY.clone(); + } + private static boolean notExists(final Path path, final LinkOption... options) { return Files.notExists(Objects.requireNonNull(path, "path"), options); } @@ -1199,6 +1211,10 @@ public final class PathUtils { return readAttributes(path, DosFileAttributes.class, options); } + private static Path readIfSymbolicLink(final Path path) throws IOException { + return Files.isSymbolicLink(path) ? Files.readSymbolicLink(path) : path; + } + /** * Reads the PosixFileAttributes or DosFileAttributes from the given path. Returns null instead of throwing * {@link UnsupportedOperationException}. @@ -1687,11 +1703,4 @@ public final class PathUtils { return path; } - /** - * Does allow to instantiate. - */ - private PathUtils() { - // do not instantiate. - } - }