Community
Participate
Working Groups
Eclipse Standard 4.4 package on OS X 10.9.4. Seeing error on plugin, so I ran Project>Clean... This resulted in the following exception. I am unable to build the project, so suggestions on what to do would be appreciated. java.lang.IllegalArgumentException at org.eclipse.jdt.core.dom.AST.newArrayType(AST.java:1140) at org.eclipse.pde.api.tools.internal.util.Signatures.getType(Signatures.java:546) at org.eclipse.pde.api.tools.internal.util.Signatures.getParametersTypeNames(Signatures.java:522) at org.eclipse.pde.api.tools.internal.util.Signatures.getMethodSignatureFromNode(Signatures.java:492) at org.eclipse.pde.api.tools.internal.provisional.scanner.TagScanner$Visitor.scanMethodJavaDoc(TagScanner.java:495) at org.eclipse.pde.api.tools.internal.provisional.scanner.TagScanner$Visitor.visit(TagScanner.java:482) at org.eclipse.jdt.core.dom.MethodDeclaration.accept0(MethodDeclaration.java:611) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711) at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2782) at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:470) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711) at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2782) at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:212) at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2711) at org.eclipse.pde.api.tools.internal.provisional.scanner.TagScanner.scan(TagScanner.java:694) at org.eclipse.pde.api.tools.internal.provisional.scanner.TagScanner.scan(TagScanner.java:640) at org.eclipse.pde.api.tools.internal.ProjectApiDescription$TypeNode.refresh(ProjectApiDescription.java:268) at org.eclipse.pde.api.tools.internal.ApiDescription.findNode(ApiDescription.java:463) at org.eclipse.pde.api.tools.internal.ApiDescription.resolveAnnotations(ApiDescription.java:487) at org.eclipse.pde.api.tools.internal.builder.MethodLeakDetector.isProblem(MethodLeakDetector.java:98) at org.eclipse.pde.api.tools.internal.builder.AbstractProblemDetector.createProblems(AbstractProblemDetector.java:518) at org.eclipse.pde.api.tools.internal.builder.ReferenceAnalyzer.analyze(ReferenceAnalyzer.java:263) at org.eclipse.pde.api.tools.internal.builder.BaseApiAnalyzer.checkApiUsage(BaseApiAnalyzer.java:1206) at org.eclipse.pde.api.tools.internal.builder.BaseApiAnalyzer.analyzeComponent(BaseApiAnalyzer.java:271) at org.eclipse.pde.api.tools.internal.builder.ApiAnalysisBuilder.buildAll(ApiAnalysisBuilder.java:752) at org.eclipse.pde.api.tools.internal.builder.ApiAnalysisBuilder.build(ApiAnalysisBuilder.java:367) at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:734) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246) at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:299) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:302) at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:358) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:381) at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Greg, is it a Java 8 project? Are you saying the whole project isn't built or "only" the API builder aborts?
No, it's not Java 8, although I'm using Java 8 to run Eclipse. The project still has errors, so I assume the compile aborts.
(In reply to Greg Watson from comment #2) > No, it's not Java 8, although I'm using Java 8 to run Eclipse. > > The project still has errors, so I assume the compile aborts. Java compile errors or API Tools errors? This isn't the same. I'd expect that the other builders can complete their job.
Compile errors. I was able to clear these, so reducing severity to normal.
From the Javadoc of AST.newArrayType() Creates and returns a new unparented array type node with the given element type, which cannot be an array type for API levels JLS8 and later. By default, the array type has one non-annotated dimension. So it seems the AST was using JLS8 but we still passed in an array.
Created attachment 251934 [details] project with an example of the issue I did some investigation and managed to isolate a code snippet when the issue occurs. Attaching a project with an example. "mvn clean compile" ends up with IllegalArgumentException. It is reproducible in case: 1. There is some API method takes multidimensional array as a parameter 2. AND that method is annotated with some java doc 3. AND the package declaring the method is exported in MANIFEST.MF
Can you give steps to recreate in eclipse? For example does eclipse -> Clean + Build cause this exception for this project. I tried but it works fine.
Created attachment 251946 [details] Errors running builder 'API Analysis Builder' - Screenshot It's reproducible during incremental build: 1. F.e. add a comment or a space in ApiExample.java 2. Save the file.
I can recreate it now . Thanks!
Fixed via commit https://git.eclipse.org/c/pde/eclipse.pde.ui.git/commit/?id=4e0d7634a61f22fbfece30b5b72c63aa294daba1
verified on Version: Mars (4.5) Build id: N20150411-1500