[
https://issues.apache.org/jira/browse/MNG-5592?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15901883#comment-15901883
]
Jon Harper commented on MNG-5592:
---------------------------------
Hi,
this issue is not fixed. Please reopen.
I put together a small testcase which shows that upgrade to aether 1 only
partially fixes the problem.I'll attach it to this bug. Here's some sample
output on my testcase: We see that we maven 3.2.3, the two builds of
"e-unexpected-crash" cause an exception, with maven 3.2.5 (which ships aether
1.0), the first build is fixed (it correctly reports the dependency conflict)
but the second one still throws the exception.
Apache Maven 3.2.3:
{noformat}
Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4;
2014-08-11T22:58:10+02:00)
[..snip Adding a few artifacts to the repository to setup the dependency
conflict..]
Building e-unexpected-crash; Should fail with dependency conflict but crashes
up to mvn 3.2.3
[INFO] Building e unexpected crash 1.0
[INFO] BUILD SUCCESS
Exception in thread "main" java.lang.StackOverflowError
at
org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext.isIncluded(ConflictResolver.java:1062)
[..snip Adding more artifacts to retrigger the bug after maven 3.2.5..]
Building e-unexpected-crash; Should fail with dependency conflict but crashes
on all maven version (tested up to 3.5.0-alpha-1)
[INFO] Building e unexpected crash 1.0
[INFO] BUILD SUCCESS
Exception in thread "main" java.lang.StackOverflowError
at
org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext.isIncluded(ConflictResolver.java:1062)
{noformat}
Apache maven 3.2.5:
{noformat}
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1;
2014-12-14T18:29:23+01:00)
[..snip Adding a few artifacts to the repository to setup the dependency
conflict..]
Building e-unexpected-crash; Should fail with dependency conflict but crashes
up to mvn 3.2.3
[INFO] Building e unexpected crash 1.0
[INFO] BUILD FAILURE
[ERROR] Failed to execute goal on project e-ko: Could not resolve dependencies
for project e:e-ko:jar:1.0: Failed to collect dependencies for e:e-ko:jar:1.0:
Could not resolve version conflict among [c:c:jar:[2.0,2.0], d:d:jar:[1.0,1.0]
-> c:c:jar:[1.0,1.0]] -> [Help 1]
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[..snip Adding more artifacts to retrigger the bug after maven 3.2.5..]
Building e-unexpected-crash; Should fail with dependency conflict but crashes
on all maven version (tested up to 3.5.0-alpha-1)
[INFO] Building e unexpected crash 1.0
[INFO] BUILD SUCCESS
Exception in thread "main" java.lang.StackOverflowError
at
org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext.isIncluded(ConflictResolver.java:1062)
{noformat}
I did a bit of debugging. I saw mainly two things:
- maven passes a dependency graph to aether PathRecordingDependencyVisitor
where some artifacts are the same maven coordinate but have different
DependencyNode Objects. But aether uses an IdentityHashtable to detect cycles,
so it doesn't detect them correctly here. The artifacts with different
DependencyNodes come from the range dependency.
- Aether always remove the dependencyNode from it's visited set after in
visitLeave. So in the following case, it will do an infinite cyclic recursion
even when the dependencynode objects are unique:
{noformat}
* A
* B1
* A <- Here A is in the visited set, so we don't recurse on the
children. But A is removed from the visited set !
* B2
* A <- Here A is no longer in the visited set. Aether will recurse
* B1
* A
* B2
* A
[..snip.. infinite loop]
{noformat}
I did some experiments:
- changing the aether code to properly track dependency nodes (using an integer
hashmap value and increment/decrement, recursing only when the value is 0).
This fixed the crash.
- changing the aether code to key a hashtable by the maven coordinate string,
instead of the Identity of the DependencyNode. This resulted in less artifacts
examined during the graph walk, but didn't fix the bug (it still does an
infinite recursion)
To debug this, I displayed the graph with the following patch:
{noformat}
diff --git
a/aether-api/src/main/java/org/eclipse/aether/graph/DefaultDependencyNode.java
b/aether-api/src/main/java/org/eclipse/aether/graph/DefaultDependencyNode.java
index c702d23..5f87fd3 100644
---
a/aether-api/src/main/java/org/eclipse/aether/graph/DefaultDependencyNode.java
+++
b/aether-api/src/main/java/org/eclipse/aether/graph/DefaultDependencyNode.java
@@ -329,8 +329,12 @@ public final class DefaultDependencyNode
}
}
+ public static int depth = 0;
public boolean accept( DependencyVisitor visitor )
{
+ depth++;
+ System.out.println( (new String(new char[depth]).replace('\0', ' '))
+ + this.toString() + ";" + super.toString());
if ( visitor.visitEnter( this ) )
{
for ( DependencyNode child : children )
@@ -341,7 +345,7 @@ public final class DefaultDependencyNode
}
}
}
-
+ depth--;
return visitor.visitLeave( this );
}
{noformat}
Here's what it looks like on the case still failing in maven 3.3.9:
#Without any patch
{noformat}
e:e-ko:jar:1.0;org.eclipse.aether.graph.DefaultDependencyNode@72cf2de5
a:a:jar:1.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@2bb7bd00
a:a:jar:2.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@14b030a0
b:b:jar:1.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@422c3c7a
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:2.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@18230356
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@422c3c7a
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:2.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@18230356
[.. snip infinite..]
{noformat}
#With the integer increment/decrement patch:
{noformat}
e:e-ko:jar:1.0;org.eclipse.aether.graph.DefaultDependencyNode@72cf2de5
a:a:jar:1.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@2bb7bd00
a:a:jar:2.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@14b030a0
b:b:jar:1.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@422c3c7a
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:2.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@18230356
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:3.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@d8305c2
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:3.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@56bca85b
b:b:jar:1.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@75d0911a
a:a:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@422c3c7a
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@422c3c7a
a:a:jar:2.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@18230356
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:3.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@d8305c2
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:2.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@18230356
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@422c3c7a
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:2.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@18230356
a:a:jar:3.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@d8305c2
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:3.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@d8305c2
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@422c3c7a
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:2.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@18230356
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:3.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@d8305c2
c:c:jar:2.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@75e91545
d:d:jar:1.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@60d1a32f
c:c:jar:1.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@531c311e
{noformat}
#With the integer increment/decrement patch and the maven string coordinate
instead of the DependencyNode ID
{noformat}
e:e-ko:jar:1.0;org.eclipse.aether.graph.DefaultDependencyNode@72cf2de5
a:a:jar:1.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@2bb7bd00
a:a:jar:2.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@14b030a0
b:b:jar:1.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@422c3c7a
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:2.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@18230356
a:a:jar:3.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@d8305c2
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:3.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@56bca85b
b:b:jar:1.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@75d0911a
a:a:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@422c3c7a
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:2.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@18230356
b:b:jar:1.0
(compile);org.eclipse.aether.graph.DefaultDependencyNode@41e350f1
a:a:jar:3.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@d8305c2
c:c:jar:2.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@75e91545
d:d:jar:1.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@60d1a32f
c:c:jar:1.0 (compile);org.eclipse.aether.graph.DefaultDependencyNode@531c311e
{noformat}
After the integer increment/decrement, an artifact's children are reexamined
only if the artifact reappears in a different subtree. But I think that it is
not needed to reexamine it at all ? Maybe the code should always prune the tree
when seeing an artifact for the second time ? The graph walk
(PathRecordingDependencyVisitor) is called from aether-utils
NearestVersionSelector in newFailure in case there is no version that can
satisfy all the ranges. This leads to quite a few artifacts beeing examined: in
my real world project 2million+ artifacts are examined; if I modify the code to
never revist the children of an already visited artifiact, this goes doesn to
5000; the outputted conflict message is the same.
Here are the patches that I mentionned:
Using the maven coordinate and tracking for each subtree:
{noformat}
diff --git
a/aether-util/src/main/java/org/eclipse/aether/util/graph/visitor/PathRecordingDependencyVisitor.java
b/aether-util/src/main/java/org/eclipse/aether/util/graph/visitor/PathRecordingDependencyVisitor.java
index 7633a11..b76ac07 100644
---
a/aether-util/src/main/java/org/eclipse/aether/util/graph/visitor/PathRecordingDependencyVisitor.java
+++
b/aether-util/src/main/java/org/eclipse/aether/util/graph/visitor/PathRecordingDependencyVisitor.java
@@ -12,7 +12,7 @@ package org.eclipse.aether.util.graph.visitor;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.IdentityHashMap;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -33,7 +33,7 @@ public final class PathRecordingDependencyVisitor
private final Stack<DependencyNode> parents;
- private final Map<DependencyNode, Object> visited;
+ private final Map<String, Integer> visited;
private final boolean excludeChildrenOfMatches;
@@ -63,7 +63,7 @@ public final class PathRecordingDependencyVisitor
this.excludeChildrenOfMatches = excludeChildrenOfMatches;
paths = new ArrayList<List<DependencyNode>>();
parents = new Stack<DependencyNode>();
- visited = new IdentityHashMap<DependencyNode, Object>( 128 );
+ visited = new HashMap<String, Integer>( 128 );
}
/**
@@ -109,19 +109,29 @@ public final class PathRecordingDependencyVisitor
}
}
- if ( visited.put( node, Boolean.TRUE ) != null )
- {
- return false;
+ Integer i = visited.get(node.toString());
+ if (i == null) {
+ i=0;
}
+ visited.put( node.toString(), i+1 );
- return true;
+ return i.equals(0);
}
public boolean visitLeave( DependencyNode node )
{
parents.pop();
- visited.remove( node );
-
+ Integer i = visited.get(node.toString());
+
+ //in visitEnter, if accept and excludeChildrenOfMatches are true,
+ //we don't put it in the set of visited at all so it will be null here
+ if (i != null) {
+ if (i.equals(1)) {
+ visited.remove(node.toString());
+ } else {
+ visited.put( node.toString(), i-1 );
+ }
+ }
return true;
}
{noformat}
# using toString and never revisiting:
{noformat}
diff --git
a/aether-util/src/main/java/org/eclipse/aether/util/graph/visitor/PathRecordingDependencyVisitor.java
b/aether-util/src/main/java/org/eclipse/aether/util/graph/visitor/PathRecordingDependencyVisitor.java
index 7633a11..c861712 100644
---
a/aether-util/src/main/java/org/eclipse/aether/util/graph/visitor/PathRecordingDependencyVisitor.java
+++
b/aether-util/src/main/java/org/eclipse/aether/util/graph/visitor/PathRecordingDependencyVisitor.java
@@ -12,7 +12,7 @@ package org.eclipse.aether.util.graph.visitor;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.IdentityHashMap;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -33,7 +33,7 @@ public final class PathRecordingDependencyVisitor
private final Stack<DependencyNode> parents;
- private final Map<DependencyNode, Object> visited;
+ private final Map<String, Object> visited;
private final boolean excludeChildrenOfMatches;
@@ -63,7 +63,7 @@ public final class PathRecordingDependencyVisitor
this.excludeChildrenOfMatches = excludeChildrenOfMatches;
paths = new ArrayList<List<DependencyNode>>();
parents = new Stack<DependencyNode>();
- visited = new IdentityHashMap<DependencyNode, Object>( 128 );
+ visited = new HashMap<String, Object>( 128 );
}
/**
@@ -109,7 +109,7 @@ public final class PathRecordingDependencyVisitor
}
}
- if ( visited.put( node, Boolean.TRUE ) != null )
+ if ( visited.put( node.toString(), Boolean.TRUE ) != null )
{
return false;
}
@@ -120,7 +120,6 @@ public final class PathRecordingDependencyVisitor
public boolean visitLeave( DependencyNode node )
{
parents.pop();
- visited.remove( node );
return true;
}
{noformat}
I'm posting everything here since I think the aether code has been migrated to
apache (and that's part of the purpose of the maven-3.5.0 release) so the bug
is now in apache :).
Also, the patches are proofs of concepts, I didn't look at other code calling
PathRecordingDependencyVisitor. Maybe it relies on the old behavior, and the
new behavior should go in a new class.
Hopefully someone can finalize this work and improve maven.
Cheers,
Jon
> Maven Dependency Resolution Locks up
> ------------------------------------
>
> Key: MNG-5592
> URL: https://issues.apache.org/jira/browse/MNG-5592
> Project: Maven
> Issue Type: Bug
> Components: Artifacts and Repositories
> Affects Versions: 3.1.1, 3.2.1
> Environment: OS/X, Java 7 and Java 8
> Reporter: Mark Derricutt
> Assignee: igorfie
> Fix For: 3.2.5
>
> Attachments: mng-5592-simplified.zip, mng-5592.zip, MNG-5592.zip
>
>
> One one of my larger integration projects that involves A LOT of version
> ranges across a broad range of dependencies I'm seeing that Maven locks up
> resolving dependencies.
> I've recently seen this in 3.1.1 but it's happening more and more often under
> 3.2.1.
> It appears that Eclipse Aether is falling into a circular loop somewhere and
> locking up.
> {code}
> "main" #1 prio=5 os_prio=31 tid=0x00007f966b001000 nid=0x1903 runnable
> [0x0000000103559000]
> java.lang.Thread.State: RUNNABLE
> at
> org.eclipse.aether.util.graph.transformer.ConflictResolver$ConflictContext.isIncluded(ConflictResolver.java:1062)
> at
> org.eclipse.aether.util.graph.transformer.NearestVersionSelector$1.accept(NearestVersionSelector.java:145)
> at
> org.eclipse.aether.util.graph.visitor.PathRecordingDependencyVisitor.visitEnter(PathRecordingDependencyVisitor.java:88)
> at
> org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:324)
> at
> org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> at
> org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> at
> org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> at
> org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> at
> org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> at
> org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> at
> org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> at
> org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> at
> org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> at
> org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> at
> org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> at
> org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> at
> org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:329)
> at
> org.eclipse.aether.util.graph.transformer.NearestVersionSelector.newFailure(NearestVersionSelector.java:149)
> at
> org.eclipse.aether.util.graph.transformer.NearestVersionSelector.backtrack(NearestVersionSelector.java:111)
> at
> org.eclipse.aether.util.graph.transformer.NearestVersionSelector.selectVersion(NearestVersionSelector.java:84)
> at
> org.eclipse.aether.util.graph.transformer.ConflictResolver.transformGraph(ConflictResolver.java:187)
> at
> org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:275)
> at
> org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:317)
> at
> org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:159)
> at
> org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:195)
> at
> org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies(LifecycleDependencyResolver.java:127)
> at
> org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved(MojoExecutor.java:257)
> at
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:200)
> at
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
> at
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
> at
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
> at
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
> at
> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
> at
> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
> 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)
> {code}
> Running with {{-X -U}} I can see that Maven/Aether seems to be looking up A
> LOT of external repositories:
> {code}
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for apache.snapshots
> (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for apache.snapshots
> (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for apache.snapshots
> (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for apache.snapshots
> (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for apache.snapshots
> (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for apache.snapshots
> (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for apache.snapshots
> (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for apache.snapshots
> (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for apache.snapshots
> (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for apache.snapshots
> (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for apache.snapshots
> (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for apache.snapshots
> (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for apache.snapshots
> (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for apache.snapshots
> (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for apache.snapshots
> (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for apache.snapshots
> (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for apache.snapshots
> (http://repository.apache.org/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> [DEBUG] Could not find metadata
> smx3:smx3.applicationmanager.api/maven-metadata.xml in local
> (/Users/amrk/.m2/repository)
> [DEBUG] Using connector WagonRepositoryConnector with priority 0.0 for
> http://nexus.smxemail.com/nexus/content/groups/public/
> Downloading:
> http://nexus.smxemail.com/nexus/content/groups/public/smx3/smx3.applicationmanager.api/maven-metadata.xml
> Downloaded:
> http://nexus.smxemail.com/nexus/content/groups/public/smx3/smx3.applicationmanager.api/maven-metadata.xml
> (489 B at 0.1 KB/sec)
> [DEBUG] Writing tracking file
> /Users/amrk/.m2/repository/smx3/smx3.applicationmanager.api/resolver-status.properties
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> [DEBUG] Using connector WagonRepositoryConnector with priority 0.0 for
> http://nexus.smxemail.com/nexus/content/groups/public/
> Downloading:
> http://nexus.smxemail.com/nexus/content/groups/public/smx3/smx3.applicationmanager/maven-metadata.xml
> Downloaded:
> http://nexus.smxemail.com/nexus/content/groups/public/smx3/smx3.applicationmanager/maven-metadata.xml
> (7 KB at 1.5 KB/sec)
> [DEBUG] Writing tracking file
> /Users/amrk/.m2/repository/smx3/smx3.applicationmanager/resolver-status.properties
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> [DEBUG] Could not find metadata
> smx3:smx3.applicationmanager.api/maven-metadata.xml in local
> (/Users/amrk/.m2/repository)
> [DEBUG] Skipped remote update check for
> smx3:smx3.applicationmanager.api/maven-metadata.xml, already updated during
> this session.
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for
> sonatype-nexus-snapshots
> (https://oss.sonatype.org/content/repositories/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for
> sonatype-nexus-snapshots
> (https://oss.sonatype.org/content/repositories/snapshots).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for apache.snapshots
> (http://people.apache.org/repo/m2-snapshot-repository).
> [DEBUG] Using mirror Nexus
> (http://nexus.smxemail.com/nexus/content/groups/public/) for central
> (http://repo.maven.apache.org/maven2).
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)