diff --git a/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/embedder/CustomMaven3Artifact.java b/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/embedder/CustomMaven3Artifact.java index 18e1a845b889..63693f295863 100644 --- a/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/embedder/CustomMaven3Artifact.java +++ b/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/embedder/CustomMaven3Artifact.java @@ -316,6 +316,7 @@ public class CustomMaven3Artifact implements Artifact { } public int compareTo(Artifact o) { + if (o instanceof CustomMaven3Artifact) o = ((CustomMaven3Artifact)o).myWrapee; return myWrapee.compareTo(o); } diff --git a/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/embedder/CustomMaven3ArtifactResolver.java b/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/embedder/CustomMaven3ArtifactResolver.java index 3b990a11f2d8..ed3b524bc67f 100644 --- a/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/embedder/CustomMaven3ArtifactResolver.java +++ b/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/embedder/CustomMaven3ArtifactResolver.java @@ -29,9 +29,11 @@ import org.jetbrains.idea.maven.server.MavenModelConverter; import org.jetbrains.idea.maven.server.UnresolvedArtifactsCollector; import org.sonatype.aether.RepositorySystem; import org.sonatype.aether.RepositorySystemSession; +import org.sonatype.aether.repository.LocalRepository; import org.sonatype.aether.repository.LocalRepositoryManager; import org.sonatype.aether.resolution.ArtifactRequest; import org.sonatype.aether.resolution.ArtifactResult; +import org.sonatype.aether.util.FilterRepositorySystemSession; import java.io.File; import java.util.*; @@ -108,9 +110,16 @@ public class CustomMaven3ArtifactResolver } } - private RepositorySystemSession getSession( ArtifactRepository localRepository ) - { - return LegacyLocalRepositoryManager.overlay( localRepository, legacySupport.getRepositorySession(), repoSystem ); + private RepositorySystemSession getSession(ArtifactRepository localRepository) { + RepositorySystemSession session = + LegacyLocalRepositoryManager.overlay(localRepository, legacySupport.getRepositorySession(), repoSystem); + + return new FilterRepositorySystemSession(session) { + @Override + public LocalRepository getLocalRepository() { + return getLocalRepositoryManager().getRepository(); // avoid NPE in DefaultMetadataResolver.resolve(RepositorySystemSession,Collection) : 318 + } + }; } private void injectSession1( RepositoryRequest request, MavenSession session )