This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 230478 - HintTest throws errors when run from Maven project with dependency on maven module
Summary: HintTest throws errors when run from Maven project with dependency on maven m...
Status: VERIFIED FIXED
Alias: None
Product: java
Classification: Unclassified
Component: Hints (show other bugs)
Version: 7.4
Hardware: PC Linux
: P3 normal (vote)
Assignee: Jan Lahoda
URL:
Keywords: TEST
Depends on:
Blocks:
 
Reported: 2013-05-29 19:20 UTC by Jesse Glick
Modified: 2013-06-04 21:34 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jesse Glick 2013-05-29 19:20:38 UTC
7.3. If you try to use HintTest from a Maven project w/ a dep on o.n.m.maven, you get a nasty error:

java.lang.NoSuchMethodError: org.codehaus.plexus.DefaultPlexusContainer.<init>(Lorg/codehaus/plexus/ContainerConfiguration;[Lcom/google/inject/Module;)V
	at org.netbeans.modules.maven.embedder.EmbedderFactory.createProjectLikeEmbedder(EmbedderFactory.java:290)
	at org.netbeans.modules.maven.embedder.EmbedderFactory.getProjectEmbedder(EmbedderFactory.java:333)
	at org.netbeans.modules.maven.modelcache.MavenProjectCache.loadOriginalMavenProject(MavenProjectCache.java:146)
	at org.netbeans.modules.maven.modelcache.MavenProjectCache.access$100(MavenProjectCache.java:79)
	at org.netbeans.modules.maven.modelcache.MavenProjectCache$1.run(MavenProjectCache.java:112)
	at org.netbeans.modules.maven.modelcache.MavenProjectCache$1.run(MavenProjectCache.java:100)
	at org.openide.util.Mutex.writeAccess(Mutex.java:399)
	at org.netbeans.modules.maven.modelcache.MavenProjectCache.getMavenProject(MavenProjectCache.java:100)
	at org.netbeans.modules.maven.NbMavenProjectImpl.loadOriginalMavenProject(NbMavenProjectImpl.java:403)
	at org.netbeans.modules.maven.NbMavenProjectImpl.getOriginalMavenProject(NbMavenProjectImpl.java:350)
	at org.netbeans.modules.maven.MavenProjectPropsImpl.get(MavenProjectPropsImpl.java:103)
	at org.netbeans.modules.maven.MavenProjectPropsImpl.get(MavenProjectPropsImpl.java:92)
	at org.netbeans.modules.maven.MavenProjectPropsImpl$PackagingProviderImpl.packaging(MavenProjectPropsImpl.java:288)
	at org.netbeans.modules.maven.api.NbMavenProject.getPackagingType(NbMavenProject.java:345)
	at org.netbeans.modules.maven.NbMavenProjectImpl$PackagingTypeDependentLookup.check(NbMavenProjectImpl.java:728)
	at org.netbeans.modules.maven.NbMavenProjectImpl$PackagingTypeDependentLookup.<init>(NbMavenProjectImpl.java:723)
	at org.netbeans.modules.maven.NbMavenProjectImpl.<init>(NbMavenProjectImpl.java:220)
	at org.netbeans.modules.maven.NbMavenProjectFactory.loadProject(NbMavenProjectFactory.java:119)
	at org.netbeans.api.project.ProjectManager.createProject(ProjectManager.java:371)
	at org.netbeans.api.project.ProjectManager.access$300(ProjectManager.java:86)
	at org.netbeans.api.project.ProjectManager$2.run(ProjectManager.java:292)
	at org.netbeans.api.project.ProjectManager$2.run(ProjectManager.java:235)
	at org.openide.util.Mutex.readAccess(Mutex.java:332)
	at org.netbeans.api.project.ProjectManager.findProject(ProjectManager.java:235)
	at org.netbeans.modules.projectapi.SimpleFileOwnerQueryImplementation.getOwner(SimpleFileOwnerQueryImplementation.java:129)
	at org.netbeans.modules.projectapi.SimpleFileOwnerQueryImplementation.getOwner(SimpleFileOwnerQueryImplementation.java:95)
	at org.netbeans.api.project.FileOwnerQuery.getOwner(FileOwnerQuery.java:132)
	at org.netbeans.modules.java.project.ProjectSourceForBinaryQuery.findSourceRoots2(ProjectSourceForBinaryQuery.java:79)
	at org.netbeans.api.java.queries.SourceForBinaryQuery.findSourceRoots2(SourceForBinaryQuery.java:126)
	at org.netbeans.modules.parsing.impl.indexing.PathRegistry.sourceForBinaryQuery(PathRegistry.java:195)
	at org.netbeans.modules.java.source.classpath.CacheClassPath.getResources(CacheClassPath.java:173)
	at org.netbeans.api.java.classpath.ClassPath.entries(ClassPath.java:350)
	at org.netbeans.modules.java.source.parsing.CachingFileManager.list(CachingFileManager.java:126)
	at org.netbeans.modules.java.source.parsing.ProxyFileManager.list(ProxyFileManager.java:182)
	at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:2561)
	at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:2234)
	at com.sun.tools.javac.code.Symbol.complete(Symbol.java:422)
	at com.sun.tools.javac.comp.Enter.visitTopLevel(Enter.java:339)
	at com.sun.tools.javadoc.JavadocEnter.visitTopLevel(JavadocEnter.java:78)
	at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:457)
	at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:298)
	at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:312)
	at com.sun.tools.javac.comp.Enter.complete(Enter.java:708)
	at com.sun.tools.javac.main.JavaCompiler.complete(JavaCompiler.java:979)
	at com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:945)
	at com.sun.tools.javac.api.JavacTaskImpl.enter(JavacTaskImpl.java:369)
	at com.sun.tools.javac.api.JavacTaskImpl.enter(JavacTaskImpl.java:315)
	at org.netbeans.modules.java.source.parsing.JavacParser.moveToPhase(JavacParser.java:632)
	at org.netbeans.modules.java.source.parsing.CompilationInfoImpl.toPhase(CompilationInfoImpl.java:385)
	at org.netbeans.api.java.source.CompilationController.toPhase(CompilationController.java:109)
	at org.netbeans.modules.java.hints.test.api.HintTest$DeadlockTask.run(HintTest.java:729)
	at org.netbeans.modules.java.hints.test.api.HintTest$DeadlockTask.run(HintTest.java:717)
	at org.netbeans.api.java.source.JavaSource$MultiTask.run(JavaSource.java:488)
	at org.netbeans.modules.parsing.impl.TaskProcessor.callUserTask(TaskProcessor.java:584)
	at org.netbeans.modules.parsing.api.ParserManager$UserTaskAction.run(ParserManager.java:155)
	at org.netbeans.modules.parsing.api.ParserManager$UserTaskAction.run(ParserManager.java:139)
	at org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:201)
	at org.netbeans.modules.parsing.impl.TaskProcessor$2.call(TaskProcessor.java:198)
	at org.netbeans.modules.masterfs.filebasedfs.utils.FileChangedManager.priorityIO(FileChangedManager.java:176)
	at org.netbeans.modules.masterfs.providers.ProvidedExtensions.priorityIO(ProvidedExtensions.java:360)
	at org.netbeans.modules.parsing.impl.Utilities.runPriorityIO(Utilities.java:74)
	at org.netbeans.modules.parsing.impl.TaskProcessor.runUserTask(TaskProcessor.java:198)
	at org.netbeans.modules.parsing.api.ParserManager.parse(ParserManager.java:106)
	at org.netbeans.api.java.source.JavaSource.runUserActionTaskImpl(JavaSource.java:438)
	at org.netbeans.api.java.source.JavaSource.runUserActionTask(JavaSource.java:409)
	at org.netbeans.modules.java.hints.test.api.HintTest.parse(HintTest.java:536)
	at org.netbeans.modules.java.hints.test.api.HintTest.ensureCompilable(HintTest.java:392)
	at org.netbeans.modules.java.hints.test.api.HintTest.run(HintTest.java:452)
	at <your test>

This is because it is finding ${basedir}/target/endorsed/*.jar in the classpath somewhere and trying to find a corresponding source project—which is ${basedir} itself.

Probably HintTest.TestSourceForBinaryQuery should return an empty result, rather than just null, for unrecognized binaries.
Comment 1 Quality Engineering 2013-06-02 01:08:59 UTC
Integrated into 'main-golden', will be available in build *201306012301* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/6b133478df9c
User: Jan Lahoda <jlahoda@netbeans.org>
Log: #230478: prevent loading of projects while running tests
Comment 2 Jan Lahoda 2013-06-02 07:44:23 UTC
TestSourceForBinaryQuery now always returns a result as suggested - please let me know if it helper or not. Thanks.
Comment 3 Jesse Glick 2013-06-03 15:53:54 UTC
I guess I will recheck in 7.4.
Comment 4 Jesse Glick 2013-06-04 21:34:35 UTC
Verified in org.netbeans.api:org-netbeans-modules-java-hints-test:dev-20130604.151856-1.