private <V> V executeBare(MavenProject project, ICallable<V> callable, IProgressMonitor monitor) throws CoreException { final MavenSession mavenSession = getSession(); final FilterRepositorySystemSession repositorySession = getRepositorySession(); final TransferListener origTransferListener = repositorySession.setTransferListener(maven.createArtifactTransferListener(monitor)); final MavenProject origProject = mavenSession.getCurrentProject(); final List<MavenProject> origProjects = mavenSession.getProjects(); try { if (project != null) { mavenSession.setCurrentProject(project); mavenSession.setProjects(Collections.singletonList(project)); } return callable.call(this, monitor); } finally { repositorySession.setTransferListener(origTransferListener); if (project != null) { mavenSession.setCurrentProject(origProject); mavenSession.setProjects( origProjects != null ? origProjects : Collections.<MavenProject>emptyList()); } } }