eclipse-jdt / eclipse-jdt/eclipse.jdt.core
NPE in String.toCharArray for API Analysis
- Dominant language
- Java
- Stars
- 237
- Forks
- 195
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 47
Description
eclipse.buildId=4.37.0.I20250905-0730
java.version=21.0.5
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_GB
Command-line arguments: -os win32 -ws win32 -arch x86_64 -clean -data E:\Development\Workspace
About six months ago, using 2024-12, an edit to the org.eclipse.ocl ewillink/2285 branch started to provoke Builder problems wrt the API Analysis. Since the API Analysis attempts to avoid unnecessary repetition, the popup is 'intermittent' as perceived. The logged error however seems solid wrt a clean of org.eclipse.ocl.pivot. The problem is still present in 2025-09.
(I make extensive use of `@NonNull`/`@Nullable`, including e.g. `@NonNull T @NonNull... args`).
Hopefully a little code reading around the stack trace will avoid the need to investigate a repro.
```
java.lang.NullPointerException: Cannot invoke "String.toCharArray()" because "typeSignature" is null
at org.eclipse.jdt.core.Signature.createArraySignature(Signature.java:1079)
at org.eclipse.pde.api.tools.internal.util.Signatures.getTypeSignature(Signatures.java:615)
at org.eclipse.pde.api.tools.internal.util.Signatures.getParametersTypeNames(Signatures.java:497)
at org.eclipse.pde.api.tools.internal.util.Signatures.getMethodSignatureFromNode(Signatures.java:467)
at org.eclipse.pde.api.tools.internal.provisional.scanner.TagScanner$Visitor.scanMethodJavaDoc(TagScanner.java:503)
at org.eclipse.pde.api.tools.internal.provisional.scanner.TagScanner$Visitor.visit(TagScanner.java:490)
at org.eclipse.jdt.core.dom.MethodDeclaration.accept0(MethodDeclaration.java:652)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3312)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3383)
at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:497)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3312)
at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3383)
at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:257)
at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3312)
at org.eclipse.pde.api.tools.internal.provisional.scanner.TagScanner.scan(TagScanner.java:682)
at org.eclipse.pde.api.tools.internal.provisional.scanner.TagScanner.scan(TagScanner.java:638)
at org.eclipse.pde.api.tools.internal.ProjectApiDescription$TypeNode.refresh(ProjectApiDescription.java:237)
at org.eclipse.pde.api.tools.internal.ApiDescription.findNode(ApiDescription.java:417)
at org.eclipse.pde.api.tools.internal.ApiDescription.resolveAnnotations(ApiDescription.java:435)
at org.eclipse.pde.api.tools.internal.builder.IncrementalApiBuilder$ResourceDeltaVisitor.visit(IncrementalApiBuilder.java:165)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:78)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:92)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:92)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:92)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:92)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:92)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:92)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:92)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:92)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:92)
at org.eclipse.core.internal.events.ResourceDelta.accept(ResourceDelta.java:61)
at org.eclipse.pde.api.tools.internal.builder.IncrementalApiBuilder.build(IncrementalApiBuilder.java:236)
at org.eclipse.pde.api.tools.internal.builder.ApiAnalysisBuilder.work(ApiAnalysisBuilder.java:452)
at org.eclipse.pde.api.tools.internal.builder.ApiAnalysisBuilder.build(ApiAnalysisBuilder.java:383)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1109)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:299)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:355)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:449)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:452)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:564)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:512)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:594)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:208)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:309)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
```
Contributor guide
Assessment
This issue has not been assessed yet.