Skip to content

Commit

Permalink
NPE in MavenSession.getAllProjects() (#1221)
Browse files Browse the repository at this point in the history
Signed-off-by: Snjezana Peco <[email protected]>
  • Loading branch information
snjeza authored Jan 28, 2023
1 parent f66825e commit 5f79164
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
package org.eclipse.m2e.core;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;

import java.io.ByteArrayInputStream;
import java.io.File;
Expand All @@ -20,7 +22,10 @@
import java.util.Arrays;
import java.util.List;

import org.apache.maven.execution.MavenExecutionResult;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuildingRequest;
import org.apache.maven.shared.utils.io.FileUtils;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IMarker;
Expand All @@ -30,6 +35,8 @@
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.m2e.core.embedder.IMaven;
import org.eclipse.m2e.core.embedder.IMavenExecutionContext;
import org.eclipse.m2e.core.internal.MavenPluginActivator;
import org.eclipse.m2e.core.project.IMavenProjectFacade;
import org.eclipse.m2e.core.project.MavenProjectInfo;
Expand Down Expand Up @@ -107,4 +114,24 @@ public void testBuildStartTime() throws Exception {
IMarker[] markers = project.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE);
assertEquals(Arrays.toString(markers), 0, markers.length);
}

@Test
public void testAllProjects() throws Exception {
IMaven maven = MavenPlugin.getMaven();
File pomFile = new File("resources/projects/simplePomOK/pom.xml");
IMavenExecutionContext context = maven.createExecutionContext();
MavenExecutionResult result = context.execute((context1, monitor1) -> {
ProjectBuildingRequest configuration = context.newProjectBuildingRequest();
configuration.setResolveDependencies(true);
return maven.readMavenProject(pomFile, configuration);
}, monitor);
assertFalse(result.hasExceptions());
MavenProject project = result.getProject();
result = context.execute(project, (context1, monitor) -> {
MavenSession session = context1.getSession();
assertNotNull("getProjects", session.getProjects());
assertNotNull("getAllProjects", session.getAllProjects());
return session.getResult();
}, monitor);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -359,14 +359,17 @@ private <V> V executeBare(MavenProject project, ICallable<V> callable, IProgress
.setTransferListener(new ArtifactTransferListenerAdapter(monitor));
final MavenProject origProject = mavenSession.getCurrentProject();
final List<MavenProject> origProjects = mavenSession.getProjects();
final List<MavenProject> origAllProjects = mavenSession.getAllProjects();
final ClassLoader origTCCL = Thread.currentThread().getContextClassLoader();
try {
if(project == null && projectSupplier != null) {
project = projectSupplier.apply(this);
}
if(project != null) {
mavenSession.setCurrentProject(project);
mavenSession.setProjects(Collections.singletonList(project));
List<MavenProject> projects = Collections.singletonList(project);
mavenSession.setProjects(projects);
mavenSession.setAllProjects(projects);
}
return callable.call(this, IProgressMonitor.nullSafe(monitor));
} finally {
Expand All @@ -375,6 +378,7 @@ private <V> V executeBare(MavenProject project, ICallable<V> callable, IProgress
if(project != null) {
mavenSession.setCurrentProject(origProject);
mavenSession.setProjects(origProjects != null ? origProjects : Collections.<MavenProject> emptyList());
mavenSession.setAllProjects(origAllProjects != null ? origAllProjects : Collections.<MavenProject> emptyList());
}
}
}
Expand Down

0 comments on commit 5f79164

Please sign in to comment.