[
https://jira.codehaus.org/browse/MNG-5687?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kristian Rosenvold reassigned MNG-5687:
---------------------------------------
Assignee: Kristian Rosenvold
> Parallel Builds can build in wrong order
> ----------------------------------------
>
> Key: MNG-5687
> URL: https://jira.codehaus.org/browse/MNG-5687
> Project: Maven
> Issue Type: Bug
> Components: General
> Affects Versions: 3.2.3
> Environment: Best visibility on jdk8
> Reporter: Kristian Rosenvold
> Assignee: Kristian Rosenvold
> Fix For: 3.2.4
>
>
> Fixed JDK8 IT failure for
> MavenITmng3004ReactorFailureBehaviorMultithreadedTest#testitFailFastSingleThread
> It turns out the execution order of the modules in the build can be
> incorrect, in some cases severely incorrect.
> For parallel builds this can have all sorts of interesting side effects such
> as classpath
> appearing to be intermittently incorrect, missing jars/resources and similar.
> The -am options and -amd options may simply fail with the incorrect build
> order
> because expected dependencies have not been built and actual dependencies may
> not have been built.
> The underlying problem was that ProjectDependencyGraph#getDownstreamProjects
> and getUpstreamProjects
> did not actually obey the reactor build order as defined by
> ProjectDependencyGraph#getSortedProjects,
> even though the javadoc claims they should.
> This has only worked by accident on earlier JDK's and might not have worked
> at all (basically
> depends on Set iteration order being equal to insertion order). JDK8 has
> slightly different
> iteration order, which caused the IT failure.
> This problem may be the root cause of MNG-4996 and any other issue where the
> modules build
> in incorrect order.
> The bug affects:
> parallel builds
> command line -am (--also-make) option
> command line -amd (also-make-dependents) option
> On all java versions, although visibility might be somewhat different on
> different jdks.
> Added simple unit test that catches the problem.
--
This message was sent by Atlassian JIRA
(v6.1.6#6162)