redhat-developer / vscode-java

Java Language Support for Visual Studio Code
Eclipse Public License 2.0
2.08k stars 438 forks source link

Error -- Cannot invoke "String.equalsIgnoreCase(String)" because the return value of "org.eclipse.core.runtime.IPath.getFileExtension()" is null #2856

Closed anandbibek closed 1 year ago

anandbibek commented 1 year ago

Type: Bug

Whenever I'm trying to include a long list of referenced libraries in my java project via below settings.json, I run into the exceptions mentioned below. After that Java Language Support Server always keeps failing. Even if I remove the reference libraries setting.

Cleaning workspace does not solve the problem either. I have to delete .vscode folder to reset everything.

Settings.json

    "java.project.sourcePaths": ["src"],
    "java.project.outputPath": "bin",
    "java.project.referencedLibraries": [
        "lib/**/*.jar",
        "/scratch/xxxxxxxx/modules/**/*.jar"
    ]
}

Error

[Error - 5:08:33 AM] Jan 5, 2023, 5:08:33 AM Problems occurred when invoking code from plug-in: "org.eclipse.core.resources". Cannot invoke "String.equalsIgnoreCase(String)" because the return value of "org.eclipse.core.runtime.IPath.getFileExtension()" is null java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because the return value of "org.eclipse.core.runtime.IPath.getFileExtension()" is null at org.eclipse.jdt.internal.core.JavaModel.isJmod(JavaModel.java:401) at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:801) at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1103) at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1048) at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1025) at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:667) at org.eclipse.jdt.internal.core.ClasspathChange.generateDelta(ClasspathChange.java:434) at org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged(DeltaProcessor.java:2127) at org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:501) at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:307) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:297) at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:160) at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:388) at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1514) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:50) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

[Error - 5:08:33 AM] Jan 5, 2023, 5:08:33 AM Problems occurred when invoking code from plug-in: "org.eclipse.core.resources". Cannot invoke "String.equalsIgnoreCase(String)" because the return value of "org.eclipse.core.runtime.IPath.getFileExtension()" is null java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because the return value of "org.eclipse.core.runtime.IPath.getFileExtension()" is null at org.eclipse.jdt.internal.core.JavaModel.isJmod(JavaModel.java:401) at org.eclipse.jdt.internal.core.JavaProject.getPackageFragmentRoot0(JavaProject.java:2365) at org.eclipse.jdt.internal.core.DeltaProcessor$RootInfo.getPackageFragmentRoot(DeltaProcessor.java:143) at org.eclipse.jdt.internal.core.DeltaProcessor$RootInfo.(DeltaProcessor.java:134) at org.eclipse.jdt.internal.core.DeltaProcessingState.getRootInfos(DeltaProcessingState.java:360) at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots(DeltaProcessingState.java:283) at org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged(DeltaProcessor.java:2176) at org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:501) at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:307) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:297) at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:160) at org.eclipse.core.internal.resources.Workspace.broadcastBuildEvent(Workspace.java:374) at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:157) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:255) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

[Error - 5:08:33 AM] Jan 5, 2023, 5:08:33 AM Problems occurred when invoking code from plug-in: "org.eclipse.core.resources". Cannot invoke "String.equalsIgnoreCase(String)" because the return value of "org.eclipse.core.runtime.IPath.getFileExtension()" is null java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because the return value of "org.eclipse.core.runtime.IPath.getFileExtension()" is null at org.eclipse.jdt.internal.core.JavaModel.isJmod(JavaModel.java:401) at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:801) at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1103) at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1048) at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1025) at org.eclipse.jdt.internal.core.JavaProject.buildStructure(JavaProject.java:538) at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:266) at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:597) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:328) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:314) at org.eclipse.jdt.internal.core.JavaProject.getModuleDescription(JavaProject.java:3917) at org.eclipse.jdt.internal.core.builder.NameEnvironment.computeClasspathLocations(NameEnvironment.java:129) at org.eclipse.jdt.internal.core.builder.NameEnvironment.(NameEnvironment.java:63) at org.eclipse.jdt.internal.core.builder.JavaBuilder.initializeBuilder(JavaBuilder.java:644) at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:182) at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1020) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:247) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:303) at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:392) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:395) at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:506) at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:454) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:536) at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:161) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:255) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

[Error - 5:08:33 AM] Jan 5, 2023, 5:08:33 AM Errors occurred during the build. [Error - 5:08:34 AM] Jan 5, 2023, 5:08:34 AM Problems occurred when invoking code from plug-in: "org.eclipse.jdt.ls.core". Cannot invoke "String.equalsIgnoreCase(String)" because the return value of "org.eclipse.core.runtime.IPath.getFileExtension()" is null java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because the return value of "org.eclipse.core.runtime.IPath.getFileExtension()" is null at org.eclipse.jdt.internal.core.JavaModel.isJmod(JavaModel.java:401) at org.eclipse.jdt.internal.core.JavaProject.getPackageFragmentRoot0(JavaProject.java:2365) at org.eclipse.jdt.internal.core.DeltaProcessor$RootInfo.getPackageFragmentRoot(DeltaProcessor.java:143) at org.eclipse.jdt.internal.core.DeltaProcessor$RootInfo.(DeltaProcessor.java:134) at org.eclipse.jdt.internal.core.DeltaProcessingState.getRootInfos(DeltaProcessingState.java:360) at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots(DeltaProcessingState.java:283) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:737) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2380) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2405) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:811) at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:2096) at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:3815) at com.microsoft.jdtls.ext.core.model.PackageNode.createNodeForClasspathEntry(PackageNode.java:255) at com.microsoft.jdtls.ext.core.PackageCommand.lambda$11(PackageCommand.java:329) at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source) at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source) at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source) at com.microsoft.jdtls.ext.core.PackageCommand.getPackageFragmentRoots(PackageCommand.java:331) at com.microsoft.jdtls.ext.core.PackageCommand.getChildren(PackageCommand.java:108) at com.microsoft.jdtls.ext.core.CommandHandler.executeCommand(CommandHandler.java:31) at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler$1.run(WorkspaceExecuteCommandHandler.java:230) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler.executeCommand(WorkspaceExecuteCommandHandler.java:220) at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$4(JDTLanguageServer.java:561) at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:79) at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source) at java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source) at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source) at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source) at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source) at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)

[Error - 5:08:34 AM] Jan 5, 2023, 5:08:34 AM Error in calling delegate command handler Cannot invoke "String.equalsIgnoreCase(String)" because the return value of "org.eclipse.core.runtime.IPath.getFileExtension()" is null java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because the return value of "org.eclipse.core.runtime.IPath.getFileExtension()" is null at org.eclipse.jdt.internal.core.JavaModel.isJmod(JavaModel.java:401) at org.eclipse.jdt.internal.core.JavaProject.getPackageFragmentRoot0(JavaProject.java:2365) at org.eclipse.jdt.internal.core.DeltaProcessor$RootInfo.getPackageFragmentRoot(DeltaProcessor.java:143) at org.eclipse.jdt.internal.core.DeltaProcessor$RootInfo.(DeltaProcessor.java:134) at org.eclipse.jdt.internal.core.DeltaProcessingState.getRootInfos(DeltaProcessingState.java:360) at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots(DeltaProcessingState.java:283) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:737) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2380) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2405) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:811) at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:2096) at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:3815) at com.microsoft.jdtls.ext.core.model.PackageNode.createNodeForClasspathEntry(PackageNode.java:255) at com.microsoft.jdtls.ext.core.PackageCommand.lambda$11(PackageCommand.java:329) at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source) at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source) at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source) at com.microsoft.jdtls.ext.core.PackageCommand.getPackageFragmentRoots(PackageCommand.java:331) at com.microsoft.jdtls.ext.core.PackageCommand.getChildren(PackageCommand.java:108) at com.microsoft.jdtls.ext.core.CommandHandler.executeCommand(CommandHandler.java:31) at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler$1.run(WorkspaceExecuteCommandHandler.java:230) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler.executeCommand(WorkspaceExecuteCommandHandler.java:220) at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$4(JDTLanguageServer.java:561) at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:79) at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source) at java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source) at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source) at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source) at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source) at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)

Extension version: 1.14.2022122003 VS Code version: Code 1.74.2 (e8a3071ea4344d9d48ef8a4df2c097372b0c5161, 2022-12-20T10:29:14.590Z) OS version: Windows_NT x64 10.0.22000 Modes: Sandboxed: No Remote OS version: Linux x64 5.4.17-2136.302.7.2.1.el8uek.x86_64 Remote OS version: Linux x64 5.4.17-2136.302.7.2.1.el8uek.x86_64

System Info |Item|Value| |---|---| |CPUs|11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz (8 x 1805)| |GPU Status|2d_canvas: enabled
canvas_oop_rasterization: disabled_off
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_renderer: enabled_on
video_decode: enabled
video_encode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled
webgpu: disabled_off| |Load (avg)|undefined| |Memory (System)|31.73GB (19.14GB free)| |Process Argv|C:\\Workspace\\vs-code-workspaces\\OCI\\adf-main.code-workspace| |Screen Reader|no| |VM|0%| |Item|Value| |---|---| |Remote|SSH: 100.108.204.190| |OS|Linux x64 5.4.17-2136.302.7.2.1.el8uek.x86_64| |CPUs|AMD EPYC 7J13 64-Core Processor (4 x 2445)| |Memory (System)|31.08GB (25.20GB free)| |VM|0%| |Item|Value| |---|---| |Remote|SSH: 100.108.204.190| |OS|Linux x64 5.4.17-2136.302.7.2.1.el8uek.x86_64| |CPUs|AMD EPYC 7J13 64-Core Processor (4 x 2445)| |Memory (System)|31.08GB (25.20GB free)| |VM|0%|
fbricon commented 1 year ago

can you attach a sample project?

fbricon commented 1 year ago

can you try after disabling all other Java extensions than vscode-java (Language Support for Java by Red Hat). The stacktrace shows some of the NPEs are triggered from com.microsoft.jdtls.ext.core.PackageCommand, i.e one of Microsoft's Java extensions.

cc @testforstephen

testforstephen commented 1 year ago

com.microsoft.jdtls.ext.core.PackageCommand is thrown by Project Manager for Java extension. @jdneo @CsCherrYY Could you take a look?

anandbibek commented 1 year ago

Hello. The project is nothing but what vscode java creates out of box with App.java and a Hello World print statement.

It works fine out of box but as soon as I included my /scratch/xxx/lib folder it errors out. That folder has a lot of jar files (org libs that I work for). I'm just surprised why it would crash. This used to work pretty well a few months back.

anandbibek commented 1 year ago

It is possible that cleaning workspace doesn't actually work after this error because I don't see the prompt that asks for reload/restart after cleanup

jdneo commented 1 year ago

Hi @anandbibek,

Could you first try all other Java extensions than vscode-java (Language Support for Java by Red Hat). to see if this is caused by upstream JDT or other extensions?

anandbibek commented 1 year ago

The error appears to be caused by "Project Manager For Java" as soon as I open the workspace with below classpath added "/scratch/anaray/view_storage/anaray_adf-main/oracle/oracle_common/modules/**/*.jar"

Here is the sequence of events:

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-01-22 19:00:12.720
!MESSAGE >> Adding /scratch/anaray/view_storage/anaray_adf-main/oracle/oracle_common/modules/thirdparty/features/spring-orm.jar to the classpath

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-01-22 19:00:13.140
!MESSAGE Reconciled 1. Took 0 ms

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-01-22 19:00:13.142
!MESSAGE >> textDocument/inlayHint

!ENTRY org.eclipse.jdt.ls.core 1 0 2023-01-22 19:00:13.148
!MESSAGE >> textDocument/semanticTokens/full

!ENTRY org.eclipse.core.resources 4 2 2023-01-22 19:00:14.892
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".
!STACK 0
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because the return value of "org.eclipse.core.runtime.IPath.getFileExtension()" is null
    at org.eclipse.jdt.internal.core.JavaModel.isJmod(JavaModel.java:401)
    at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:801)
    at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1103)
    at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1048)
    at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1025)
    at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:667)
    at org.eclipse.jdt.internal.core.ClasspathChange.generateDelta(ClasspathChange.java:437)
    at org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged(DeltaProcessor.java:2127)
    at org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:501)
    at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:307)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:297)
    at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:160)
    at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:388)
    at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1514)
    at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:50)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

!ENTRY org.eclipse.core.resources 4 2 2023-01-22 19:00:14.906
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".
!STACK 0
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because the return value of "org.eclipse.core.runtime.IPath.getFileExtension()" is null
    at org.eclipse.jdt.internal.core.JavaModel.isJmod(JavaModel.java:401)
    at org.eclipse.jdt.internal.core.JavaProject.getPackageFragmentRoot0(JavaProject.java:2365)
    at org.eclipse.jdt.internal.core.DeltaProcessor$RootInfo.getPackageFragmentRoot(DeltaProcessor.java:143)
    at org.eclipse.jdt.internal.core.DeltaProcessor$RootInfo.<init>(DeltaProcessor.java:134)
    at org.eclipse.jdt.internal.core.DeltaProcessingState.getRootInfos(DeltaProcessingState.java:360)
    at org.eclipse.jdt.internal.core.DeltaProcessingState.initializeRoots(DeltaProcessingState.java:283)
    at org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged(DeltaProcessor.java:2176)
    at org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:501)
    at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:307)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:297)
    at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:160)
    at org.eclipse.core.internal.resources.Workspace.broadcastBuildEvent(Workspace.java:374)
    at org.eclipse.core.internal.resources.Workspace.aboutToBuild(Workspace.java:317)
    at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:452)
    at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:413)
    at org.eclipse.jdt.ls.core.internal.handlers.BuildWorkspaceHandler.buildWorkspace(BuildWorkspaceHandler.java:65)
    at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$27(JDTLanguageServer.java:913)
    at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$55(JDTLanguageServer.java:1105)
    at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646)
    at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1311)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1840)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1806)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)

!ENTRY org.eclipse.core.resources 4 2 2023-01-22 19:00:14.921
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.resources".
!STACK 0
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because the return value of "org.eclipse.core.runtime.IPath.getFileExtension()" is null
    at org.eclipse.jdt.internal.core.JavaModel.isJmod(JavaModel.java:401)
    at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:801)
    at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1103)
    at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1048)
    at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1025)
    at org.eclipse.jdt.internal.core.JavaProject.buildStructure(JavaProject.java:538)
    at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:266)
    at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:597)
    at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:328)
    at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:314)
    at org.eclipse.jdt.internal.core.JavaProject.getModuleDescription(JavaProject.java:3917)
    at org.eclipse.jdt.internal.core.builder.NameEnvironment.computeClasspathLocations(NameEnvironment.java:129)
    at org.eclipse.jdt.internal.core.builder.NameEnvironment.<init>(NameEnvironment.java:63)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.initializeBuilder(JavaBuilder.java:644)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:182)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1020)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:247)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:303)
    at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:392)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:395)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:506)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:454)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:536)
    at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:524)
    at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:413)
    at org.eclipse.jdt.ls.core.internal.handlers.BuildWorkspaceHandler.buildWorkspace(BuildWorkspaceHandler.java:65)
    at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$27(JDTLanguageServer.java:913)
    at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$55(JDTLanguageServer.java:1105)
    at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646)
    at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1311)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1840)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1806)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)

!ENTRY org.eclipse.jdt.ls.core 4 0 2023-01-22 19:00:14.930
!MESSAGE Failed to build workspace.
!STACK 1
org.eclipse.core.internal.resources.ResourceException: Errors occurred during the build.
    at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:541)
    at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:413)
    at org.eclipse.jdt.ls.core.internal.handlers.BuildWorkspaceHandler.buildWorkspace(BuildWorkspaceHandler.java:65)
    at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$27(JDTLanguageServer.java:913)
    at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$55(JDTLanguageServer.java:1105)
    at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646)
    at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1311)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1840)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1806)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
Contains: Errors running builder 'Java Builder' on project 'adf-customizationset-ui_6f6f6f2d'.
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because the return value of "org.eclipse.core.runtime.IPath.getFileExtension()" is null
    at org.eclipse.jdt.internal.core.JavaModel.isJmod(JavaModel.java:401)
    at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:801)
    at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1103)
    at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1048)
    at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1025)
    at org.eclipse.jdt.internal.core.JavaProject.buildStructure(JavaProject.java:538)
    at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:266)
    at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:597)
    at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:328)
    at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:314)
    at org.eclipse.jdt.internal.core.JavaProject.getModuleDescription(JavaProject.java:3917)
    at org.eclipse.jdt.internal.core.builder.NameEnvironment.computeClasspathLocations(NameEnvironment.java:129)
    at org.eclipse.jdt.internal.core.builder.NameEnvironment.<init>(NameEnvironment.java:63)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.initializeBuilder(JavaBuilder.java:644)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:182)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1020)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:247)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:303)
    at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:392)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:395)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:506)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:454)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:536)
    at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:524)
    at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:413)
    at org.eclipse.jdt.ls.core.internal.handlers.BuildWorkspaceHandler.buildWorkspace(BuildWorkspaceHandler.java:65)
    at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$27(JDTLanguageServer.java:913)
    at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$55(JDTLanguageServer.java:1105)
    at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646)
    at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1311)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1840)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1806)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
!SUBENTRY 1 org.eclipse.core.resources 4 75 2023-01-22 19:00:14.931
!MESSAGE Errors occurred during the build.
!SUBENTRY 2 org.eclipse.jdt.core 4 75 2023-01-22 19:00:14.931
!MESSAGE Errors running builder 'Java Builder' on project 'adf-customizationset-ui_6f6f6f2d'.
!STACK 0
java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because the return value of "org.eclipse.core.runtime.IPath.getFileExtension()" is null
    at org.eclipse.jdt.internal.core.JavaModel.isJmod(JavaModel.java:401)
    at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:801)
    at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1103)
    at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1048)
    at org.eclipse.jdt.internal.core.JavaProject.computePackageFragmentRoots(JavaProject.java:1025)
    at org.eclipse.jdt.internal.core.JavaProject.buildStructure(JavaProject.java:538)
    at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:266)
    at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:597)
    at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:328)
    at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:314)
    at org.eclipse.jdt.internal.core.JavaProject.getModuleDescription(JavaProject.java:3917)
    at org.eclipse.jdt.internal.core.builder.NameEnvironment.computeClasspathLocations(NameEnvironment.java:129)
    at org.eclipse.jdt.internal.core.builder.NameEnvironment.<init>(NameEnvironment.java:63)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.initializeBuilder(JavaBuilder.java:644)
    at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:182)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1020)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:247)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:303)
    at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:392)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:395)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:506)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:454)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:536)
    at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:524)
    at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:413)
    at org.eclipse.jdt.ls.core.internal.handlers.BuildWorkspaceHandler.buildWorkspace(BuildWorkspaceHandler.java:65)
    at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$27(JDTLanguageServer.java:913)
    at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$55(JDTLanguageServer.java:1105)
    at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646)
    at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1311)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1840)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1806)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
anandbibek commented 1 year ago

If you follow the events above, you'll see it finished adding hundreds of dependencies to classpath, and right after that went haywire throwing NPE for some reason

anandbibek commented 1 year ago

Appears to be here https://git.eclipse.org/r/plugins/gitiles/jdt/eclipse.jdt.core/+/BETA_JAVA13/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModel.java#394

Does this mean I've some file without extension in my folder hierarchy that project manager is trying to check and running into NPE?

anandbibek commented 1 year ago

Further investigation revealed that if I exclude a specific folder, it does not crash anymore. Any idea what I need to check in this folder? It has 43x 1kb JAR files here

"java.project.referencedLibraries": {
    "include": [
        "library/**/*.jar",
        "/scratch/anaray/view_storage/anaray_adf-main/oracle/oracle_common/modules/**/*.jar"
    ],
    "exclude": [
        "/scratch/anaray/view_storage/anaray_adf-main/oracle/oracle_common/modules/features/**/"
    ]
}
jdneo commented 1 year ago

The error appears to be caused by "Project Manager For Java" as soon as I open the workspace with below classpath added.

Does that mean if you disable the extension Project Manager for Java, the error does not appear anymore?

anandbibek commented 1 year ago

The error appears to be caused by "Project Manager For Java" as soon as I open the workspace with below classpath added.

Does that mean if you disable the extension Project Manager for Java, the error does not appear anymore?

Yes.

anandbibek commented 1 year ago

I figured there is at least one "thin" JAR file in that cursed folder which has an external dependency marked to a non-existent path/file. I'm not sure if the code in JavaModel is worth fixing to not throw exception and just move ahead? Would I be able to submit a PR maybe?

anandbibek commented 1 year ago

Closing as the fix appears to have been merged upstream