This is an automated email from the ASF dual-hosted git repository.
elharo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-file-management.git
The following commit(s) were added to refs/heads/master by this push:
new af5229e Java 7 has can detect symbolic links (#20)
af5229e is described below
commit af5229e042131320d55af6a13068eedbdb1190ac
Author: Elliotte Rusty Harold <[email protected]>
AuthorDate: Sat Jun 10 19:50:28 2023 -0400
Java 7 has can detect symbolic links (#20)
---
.../shared/model/fileset/util/FileSetManager.java | 29 ++++++----------------
1 file changed, 7 insertions(+), 22 deletions(-)
diff --git
a/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java
b/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java
index 6e597ac..b38cdf3 100644
---
a/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java
+++
b/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java
@@ -20,6 +20,7 @@ package org.apache.maven.shared.model.fileset.util;
import java.io.File;
import java.io.IOException;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -192,10 +193,10 @@ public class FileSetManager {
/**
* Delete the matching files and directories for the given file-set
definition.
*
- * @param fileSet The file-set matching rules, along with search base
directory.
- * @param throwsError Throw IOException when errors have occurred by
deleting files or directories.
- * @throws IOException If a matching file cannot be deleted and
<code>throwsError=true</code>, otherwise print
- * warning messages.
+ * @param fileSet the file-set matching rules, along with search base
directory
+ * @param throwsError throw IOException when errors have occurred by
deleting files or directories
+ * @throws IOException if a matching file cannot be deleted and
<code>throwsError=true</code>, otherwise print
+ * warning messages
*/
public void delete(FileSet fileSet, boolean throwsError) throws
IOException {
Set<String> deletablePaths = findDeletablePaths(fileSet);
@@ -212,7 +213,7 @@ public class FileSetManager {
if (file.exists()) {
if (file.isDirectory()) {
- if (fileSet.isFollowSymlinks() || !isSymlink(file)) {
+ if (fileSet.isFollowSymlinks() ||
!Files.isSymbolicLink(file.toPath())) {
if (verbose) {
logger.info("Deleting directory: " + file);
}
@@ -262,22 +263,6 @@ public class FileSetManager {
// Private methods
// ----------------------------------------------------------------------
- private boolean isSymlink(File file) throws IOException {
- File fileInCanonicalParent;
- File parentDir = file.getParentFile();
- if (parentDir == null) {
- fileInCanonicalParent = file;
- } else {
- fileInCanonicalParent = new File(parentDir.getCanonicalPath(),
file.getName());
- }
- if (logger.isDebugEnabled()) {
- logger.debug("Checking for symlink:\nFile's canonical path: "
- + fileInCanonicalParent.getCanonicalPath() + "\nFile's
absolute path with canonical parent: "
- + fileInCanonicalParent.getPath());
- }
- return
!fileInCanonicalParent.getCanonicalFile().equals(fileInCanonicalParent.getAbsoluteFile());
- }
-
private Set<String> findDeletablePaths(FileSet fileSet) {
Set<String> includes = findDeletableDirectories(fileSet);
includes.addAll(findDeletableFiles(fileSet, includes));
@@ -441,7 +426,7 @@ public class FileSetManager {
for (String s : list) {
File f = new File(dir, s);
- if (f.isDirectory() && (followSymlinks || !isSymlink(f))) {
+ if (f.isDirectory() && (followSymlinks ||
!Files.isSymbolicLink(f.toPath()))) {
removeDir(f, followSymlinks, throwsError, warnMessages);
} else {
if (!FileUtils.deleteQuietly(f)) {