Steven Schlansker created MSHARED-581:
-----------------------------------------
Summary: Filtered resource copyFiles fails on pre-existing symlink
Key: MSHARED-581
URL: https://issues.apache.org/jira/browse/MSHARED-581
Project: Maven Shared Components
Issue Type: Bug
Components: maven-shared-utils
Affects Versions: maven-filtering-3.1.1, maven-shared-utils-3.0.0
Environment: Apache Maven 3.3.9
(bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T08:41:47-08:00)
Maven home: /usr/local/Cellar/maven/3.3.9/libexec
Java version: 1.8.0_77, vendor: Oracle Corporation
Java home: /Users/steven/.jabba/jdk/1.8.77/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.11.6", arch: "x86_64", family: "mac"
Reporter: Steven Schlansker
I have a file shared between multiple projects via symlink:
{code}
-rw-r--r-- 1 steven staff 149 Mar 30 16:56
client/src/test/resources/simplelogger.properties
lrwxr-xr-x 1 steven staff 64 Oct 16 2014
integration-tests/jersey-client/src/test/resources/simplelogger.properties ->
../../../../../client/src/test/resources/simplelogger.properties
lrwxr-xr-x 1 steven staff 64 Oct 16 2014
integration-tests/resteasy-client/src/test/resources/simplelogger.properties ->
../../../../../client/src/test/resources/simplelogger.properties
{code}
This works fine from a clean build, but on an incremental build, it fails:
{code}
Caused by: org.apache.maven.plugin.MojoExecutionException:
/Users/steven/ot-code/service-discovery/integration-tests/jersey-client/target/test-classes/simplelogger.properties
at
org.apache.maven.plugins.resources.ResourcesMojo.execute(ResourcesMojo.java:348)
at
org.apache.maven.plugins.resources.TestResourcesMojo.execute(TestResourcesMojo.java:75)
at
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 20 more
Caused by: org.apache.maven.shared.filtering.MavenFilteringException:
/Users/steven/ot-code/service-discovery/integration-tests/jersey-client/target/test-classes/simplelogger.properties
at
org.apache.maven.shared.filtering.DefaultMavenFileFilter.copyFile(DefaultMavenFileFilter.java:128)
at
org.apache.maven.shared.filtering.DefaultMavenResourcesFiltering.filterResources(DefaultMavenResourcesFiltering.java:232)
at
org.apache.maven.plugins.resources.ResourcesMojo.execute(ResourcesMojo.java:342)
... 23 more
Caused by: java.nio.file.FileAlreadyExistsException:
/Users/steven/ot-code/service-discovery/integration-tests/jersey-client/target/test-classes/simplelogger.properties
at
sun.nio.fs.UnixException.translateToIOException(UnixException.java:88)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
at
sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(UnixFileSystemProvider.java:457)
at java.nio.file.Files.createSymbolicLink(Files.java:1043)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.apache.maven.shared.utils.io.Java7Support.createSymbolicLink(Java7Support.java:176)
at
org.apache.maven.shared.utils.io.FileUtils.copyFile(FileUtils.java:821)
at
org.apache.maven.shared.utils.io.FileUtils.copyFile(FileUtils.java:1939)
at
org.apache.maven.shared.filtering.DefaultMavenFileFilter.copyFile(DefaultMavenFileFilter.java:121)
... 25 more
{code}
Perhaps {{FileUtils.copyFile}} should not attempt to copy over an existing
symlink? It should leave it be if the target is the same, otherwise unlink it
first.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)