[
https://jira.codehaus.org/browse/MDEP-442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Laura Llewellyn updated MDEP-442:
---------------------------------
Attachment: maven-thread-test.zip
Here is a maven-invoker-test case that demonstrates this problem in my
environment. Output of {{mvn --version}}:
{code}Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e;
2014-06-17T09:51:42-04:00)
Maven home: c:\dev\maven\apache-maven-3.2.2
Java version: 1.7.0_55, vendor: Oracle Corporation
Java home: c:\Program Files\Java\jdk1.7.0_55\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
{code}
I run {{mvn clean verify}} in this project and the {{build.log}} files for the
its have exceptions like this:
{code}
[ERROR] Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its
dependencies could not be resolved: Failed to read artifact descriptor for
org.apache.maven.plugins:maven-clean-plugin:jar:2.5: Could not transfer
artifact org.apache.maven.plugins:maven-plugins:pom:22 from/to local.central
(file:///c:/dev/artifact-repository):
C:\dev\sandbox\maven-thread-test\target\local-repo\org\apache\maven\plugins\maven-plugins\22\maven-plugins-22.pom
(The process cannot access the file because it is being used by another
process) -> [Help 1]
org.apache.maven.plugin.PluginResolutionException: Plugin
org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its dependencies
could not be resolved: Failed to read artifact descriptor for
org.apache.maven.plugins:maven-clean-plugin:jar:2.5
at
org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:122)
at
org.apache.maven.plugin.internal.DefaultMavenPluginManager.getPluginDescriptor(DefaultMavenPluginManager.java:148)
at
org.apache.maven.plugin.internal.DefaultMavenPluginManager.getMojoDescriptor(DefaultMavenPluginManager.java:267)
at
org.apache.maven.plugin.DefaultBuildPluginManager.getMojoDescriptor(DefaultBuildPluginManager.java:239)
at
org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.setupMojoExecution(DefaultLifecycleExecutionPlanCalculator.java:158)
at
org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.setupMojoExecutions(DefaultLifecycleExecutionPlanCalculator.java:145)
at
org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.calculateExecutionPlan(DefaultLifecycleExecutionPlanCalculator.java:122)
at
org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.calculateExecutionPlan(DefaultLifecycleExecutionPlanCalculator.java:135)
at
org.apache.maven.lifecycle.internal.builder.BuilderCommon.resolveBuildPlan(BuilderCommon.java:97)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:109)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:347)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:154)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.eclipse.aether.resolution.ArtifactDescriptorException: Failed to
read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.5
at
org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:384)
at
org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:231)
at
org.eclipse.aether.internal.impl.DefaultRepositorySystem.readArtifactDescriptor(DefaultRepositorySystem.java:288)
at
org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:108)
... 25 more
Caused by: org.apache.maven.model.resolution.UnresolvableModelException: Could
not transfer artifact org.apache.maven.plugins:maven-plugins:pom:22 from/to
local.central (file:///c:/dev/artifact-repository):
C:\dev\sandbox\maven-thread-test\target\local-repo\org\apache\maven\plugins\maven-plugins\22\maven-plugins-22.pom
(The process cannot access the file because it is being used by another
process)
at
org.apache.maven.repository.internal.DefaultModelResolver.resolveModel(DefaultModelResolver.java:154)
at
org.apache.maven.repository.internal.DefaultModelResolver.resolveModel(DefaultModelResolver.java:203)
at
org.apache.maven.model.building.DefaultModelBuilder.readParentExternally(DefaultModelBuilder.java:903)
at
org.apache.maven.model.building.DefaultModelBuilder.readParent(DefaultModelBuilder.java:755)
at
org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:309)
at
org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:375)
... 28 more
Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: Could not
transfer artifact org.apache.maven.plugins:maven-plugins:pom:22 from/to
local.central (file:///c:/dev/artifact-repository):
C:\dev\sandbox\maven-thread-test\target\local-repo\org\apache\maven\plugins\maven-plugins\22\maven-plugins-22.pom
(The process cannot access the file because it is being used by another
process)
at
org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:459)
at
org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:262)
at
org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:239)
at
org.apache.maven.repository.internal.DefaultModelResolver.resolveModel(DefaultModelResolver.java:150)
... 33 more
Caused by: org.eclipse.aether.transfer.ArtifactTransferException: Could not
transfer artifact org.apache.maven.plugins:maven-plugins:pom:22 from/to
local.central (file:///c:/dev/artifact-repository):
C:\dev\sandbox\maven-thread-test\target\local-repo\org\apache\maven\plugins\maven-plugins\22\maven-plugins-22.pom
(The process cannot access the file because it is being used by another
process)
at
org.eclipse.aether.connector.wagon.WagonRepositoryConnector$6.wrap(WagonRepositoryConnector.java:1016)
at
org.eclipse.aether.connector.wagon.WagonRepositoryConnector$6.wrap(WagonRepositoryConnector.java:1004)
at
org.eclipse.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:725)
at
org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.FileNotFoundException:
C:\dev\sandbox\maven-thread-test\target\local-repo\org\apache\maven\plugins\maven-plugins\22\maven-plugins-22.pom
(The process cannot access the file because it is being used by another
process)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at java.io.FileOutputStream.<init>(FileOutputStream.java:171)
at
org.eclipse.aether.internal.impl.DefaultFileProcessor.copy(DefaultFileProcessor.java:155)
at
org.eclipse.aether.internal.impl.DefaultFileProcessor.copy(DefaultFileProcessor.java:139)
at
org.eclipse.aether.internal.impl.DefaultFileProcessor.move(DefaultFileProcessor.java:214)
at
org.eclipse.aether.connector.wagon.WagonRepositoryConnector$GetTask.rename(WagonRepositoryConnector.java:817)
at
org.eclipse.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:703)
... 4 more
{code}
Given this, I'm not sure if this is a problem with the dependency plugin
itself, or with the shared components Maven uses to resolve dependencies. I
will let someone with more Maven experience make that call.
> Failed to access file due to locked access when using more than one Maven
> worker thread
> ---------------------------------------------------------------------------------------
>
> Key: MDEP-442
> URL: https://jira.codehaus.org/browse/MDEP-442
> Project: Maven Dependency Plugin
> Issue Type: Bug
> Components: copy
> Affects Versions: 2.8
> Environment: MVN 3.0.4, JDK 1.7, Win 7 Pro SP1 64 Bit
> Reporter: Markus KARG
> Priority: Critical
> Attachments: maven-thread-test.zip
>
>
> My multi-module POM contains of ten modules. Each of that modules does the
> same: Invoke the 'copy' goal of the dependency plugin. The idea is to have
> ten copies of the identical source, which then will end up in ten different
> targets by getting furthere processed.
> As long as I do not use more than one Maven worker thread, everything works
> well always. But when using -T 5 to have five worker threads, rather often
> the reactor fails because the source file (!) is locked:
> {noformat}
> [ERROR] Failed to execute goal
> org.apache.maven.plugins:maven-dependency-plugin:2.8:copy (copy) on project
> MYARTIFACT: Unable to resolve artifact. Could not transfer artifact
> mygroup:myartifact:dll:4.36.1-20140415.143537-37 from/to nexus
> (http://nexus/nexus/content/groups/public):
> C:\Users\jenkins.QUIPSY\.m2\repository\mygroup\myartifact\4.36.1-SNAPSHOT\myartifact-4.36.1-20140415.143537-37.dll
> (The process cannot access the file, because it is in use by another process)
> {noformat}
> So it seems that the 'copy' task actually is locking the source file, which
> is not multi-threading-compatible. Hence, either that is a bug and should get
> fixed, or it is on purpose, then this goal has to be marked as
> non-multithreading-able.
--
This message was sent by Atlassian JIRA
(v6.1.6#6162)