eclipse-jdt / eclipse-jdt/eclipse.jdt.core

StackOverflowError when trying to test project, but only when module-info.java is present

Open
#1,490 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
237
Forks
195
Avg merge
1d 12h
Merged PRs (30d)
47

Description

I'm getting the following exception when trying to test my project. It looks like a loop in the code.

```
!ENTRY org.eclipse.core.jobs 4 2 2023-10-14 19:31:22.097
!MESSAGE An internal error occurred during: "Launching jsweet-transpiler".
!STACK 0
java.lang.StackOverflowError
at org.eclipse.jdt.internal.core.NameLookup.findType(NameLookup.java:812)
at org.eclipse.jdt.internal.core.NameLookup.findType(NameLookup.java:742)
at org.eclipse.jdt.internal.core.SearchableEnvironment.find(SearchableEnvironment.java:188)
at org.eclipse.jdt.internal.core.SearchableEnvironment.findType(SearchableEnvironment.java:542)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.fromSplitPackageOrOracle(LookupEnvironment.java:428)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.lambda$1(LookupEnvironment.java:301)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForTypeFromModules(LookupEnvironment.java:395)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:300)
at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:276)
at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findImport(CompilationUnitScope.java:585)
at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.resolveImports(CompilationUnitScope.java:291)
at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.checkAndSetImports(CompilationUnitScope.java:258)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(LookupEnvironment.java:596)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.accept(HierarchyResolver.java:209)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:346)
at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:276)
at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findImport(CompilationUnitScope.java:585)
at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.resolveImports(CompilationUnitScope.java:291)
at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.checkAndSetImports(CompilationUnitScope.java:258)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(LookupEnvironment.java:596)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.accept(HierarchyResolver.java:209)
...
```

I'm running Eclipse-IDE on macOS Version: 2023-09 (4.29.0), Build id: 20230907-1323
java.vendor.version=Temurin-17.0.8.1+1

Steps to reproduce:

1. `git clone --depth 1 --single-branch -b ck/EclipseStackOverflow https://github.com/kohlschutter/jsweet`
2. Import Maven projects into Eclipse
3. Run junit tests for the `jsweet-transpiler` submodule
4. Rename `jsweet-transpiler/src/main/java/module-info.java.txt` to `module-info.java`
5. Update m2e project settings (Maven -> Update project)
6. Remove files from `(default package)` in src/test/java (which now no longer works since it's modularized)
7. Run junit tests again
8. Notice StackOverflowError. Eclipse wants to exit the workbench, logs are written as above

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.