redhat-developer / redhat-developer/vscode-java

Problems Java(0) and Java(16777540) reported with new CLI Micronaut application

未关闭
#1,948 6 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

compile Maven
主要语言
TypeScript
星标
2.3k
派生
546
平均合并
20 小时 1 分钟
30 天内合并 PR
11

描述

I'm getting problems reported on the PROBLEMS tab in VS Code for a brand new application created using Micronaut Launch (https://micronaut.io/launch).

The problems are:

  • The project was not built since its build path is incomplete. Cannot find the class file for io.micronaut.websocket.annotation.WebSocketComponent. Fix the build path then try building this project
  • The type io.micronaut.websocket.annotation.WebSocketComponent cannot be resolved. It is indirectly referenced from required .class files

Their complete messages are long. That's why I used the codes instead in this issue title.

Even though these problems are reported, I can still click "Run" above public static void main to run the application and I can still run the Maven command compile using the command palette and with the command ./mvnw compile in the integrated terminal. Everything seems to work okay, I just get these problems reported which is distracting.

The red underline in the editor for the problem 16777540 is under just the "p" character of package com.example; at the top.

Screenshot:

image

Environment
  • Operating System: Ubuntu 20.04 running in WSL 2 on Windows 10 Pro
  • JDK version: 11.0.11
  • Visual Studio Code version: 1.56.2
  • Java extension version: v0.14.0 (extension pack)
Steps To Reproduce
  1. Go to https://micronaut.io/launch
  2. Use default settings, except change "Application Type" to "Command Line Application" and change "Build" to "Maven".
  3. "Click GENERATE PROJECT". Save as zip file to computer.
  4. Unzip and open project in VS Code.
  5. Make any change to DemoCommand.java and save the file.
  6. Observe problems reported.

Preproduction repo:
https://github.com/mattwelke/vs-code-java-micronaut-error-report

Logs:

For VS Code dev tools logs, there is no log output when I reproduce the issue (by making any change to the file and saving it).

For Java extension logs, this was recorded in the file:

{ message: 'Starting Java server with: /usr/lib/jvm/java-11-openjdk-amd64/bin/java --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m -noverify -jar /home/matt/.vscode-server/extensions/redhat.java-0.79.1/server/plugins/org.eclipse.equinox.launcher_1.6.100.v20201223-0822.jar -configuration /home/matt/.vscode-server/data/User/globalStorage/redhat.java/0.79.1/config_ss_linux -data /home/matt/.vscode-server/data/User/workspaceStorage/4af29634ea2a8727d86b9ba119e4eadb/redhat.java/ss_ws', level: 'info', timestamp: '2021-05-16 20:44:44.153' } { message: 'Starting Java server with: /usr/lib/jvm/java-11-openjdk-amd64/bin/java --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m -noverify -jar /home/matt/.vscode-server/extensions/redhat.java-0.79.1/server/plugins/org.eclipse.equinox.launcher_1.6.100.v20201223-0822.jar -configuration /home/matt/.vscode-server/data/User/globalStorage/redhat.java/0.79.1/config_linux -data /home/matt/.vscode-server/data/User/workspaceStorage/4af29634ea2a8727d86b9ba119e4eadb/redhat.java/jdt_ws', level: 'info', timestamp: '2021-05-16 20:44:44.181' } { message: 'Starting Java server with: /usr/lib/jvm/java-11-openjdk-amd64/bin/java --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m -noverify -jar /home/matt/.vscode-server/extensions/redhat.java-0.79.1/server/plugins/org.eclipse.equinox.launcher_1.6.100.v20201223-0822.jar -configuration /home/matt/.vscode-server/data/User/globalStorage/redhat.java/0.79.1/config_ss_linux -data /home/matt/.vscode-server/data/User/workspaceStorage/4af29634ea2a8727d86b9ba119e4eadb/redhat.java/ss_ws', level: 'info', timestamp: '2021-05-16 20:47:30.125' } { message: 'Starting Java server with: /usr/lib/jvm/java-11-openjdk-amd64/bin/java --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m -noverify -jar /home/matt/.vscode-server/extensions/redhat.java-0.79.1/server/plugins/org.eclipse.equinox.launcher_1.6.100.v20201223-0822.jar -configuration /home/matt/.vscode-server/data/User/globalStorage/redhat.java/0.79.1/config_linux -data /home/matt/.vscode-server/data/User/workspaceStorage/4af29634ea2a8727d86b9ba119e4eadb/redhat.java/jdt_ws', level: 'info', timestamp: '2021-05-16 20:47:30.160' } { message: '[Error - 8:47:34 PM] May 16, 2021, 8:47:34 PM Problem with folding range for /demo_c90b84bd/_/src/main/java/com/example/DemoCommand.java\n' + "_/src/main/java/com/example [in demo_c90b84bd] is not on its project's build path\n" + "Java Model Exception: Java Model Status [_/src/main/java/com/example [in demo_c90b84bd] is not on its project's build path]\n" + '\tat org.eclipse.jdt.internal.core.JavaElement.newJavaModelException(JavaElement.java:583)\n' + '\tat org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:254)\n' + '\tat org.eclipse.jdt.internal.core.Openable.openAncestors(Openable.java:528)\n' + '\tat org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:248)\n' + '\tat org.eclipse.jdt.internal.core.Openable.openAncestors(Openable.java:528)\n' + '\tat org.eclipse.jdt.internal.core.CompilationUnit.openAncestors(CompilationUnit.java:1240)\n' + '\tat org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:248)\n' + '\tat org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:596)\n' + '\tat org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:326)\n' + '\tat org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:312)\n' + '\tat org.eclipse.jdt.internal.core.CompilationUnit.getSourceRange(CompilationUnit.java:955)\n' + '\tat org.eclipse.jdt.ls.core.internal.handlers.FoldingRangeHandler.computeFoldingRanges(FoldingRangeHandler.java:77)\n' + '\tat org.eclipse.jdt.ls.core.internal.handlers.FoldingRangeHandler.foldingRange(FoldingRangeHandler.java:68)\n' + '\tat org.eclipse.jdt.ls.core.internal.syntaxserver.SyntaxLanguageServer.lambda$5(SyntaxLanguageServer.java:315)\n' + '\tat org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:75)\n' + '\tat java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:642)\n' + '\tat java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:479)\n' + '\tat java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)\n' + '\tat java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)\n' + '\tat java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)\n' + '\tat java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)\n' + '\tat java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)\n', level: 'info', timestamp: '2021-05-16 20:47:34.336' } { message: '[Error - 8:47:34 PM] May 16, 2021, 8:47:34 PM Problem with folding range for /demo_c90b84bd/_/src/main/java/com/example/DemoCommand.java\n' + "_/src/main/java/com/example [in demo_c90b84bd] is not on its project's build path\n" + "Java Model Exception: Java Model Status [_/src/main/java/com/example [in demo_c90b84bd] is not on its project's build path]\n" + '\tat org.eclipse.jdt.internal.core.JavaElement.newJavaModelException(JavaElement.java:583)\n' + '\tat org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:254)\n' + '\tat org.eclipse.jdt.internal.core.Openable.openAncestors(Openable.java:528)\n' + '\tat org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:248)\n' + '\tat org.eclipse.jdt.internal.core.Openable.openAncestors(Openable.java:528)\n' + '\tat org.eclipse.jdt.internal.core.CompilationUnit.openAncestors(CompilationUnit.java:1240)\n' + '\tat org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:248)\n' + '\tat org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:596)\n' + '\tat org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:326)\n' + '\tat org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:312)\n' + '\tat org.eclipse.jdt.internal.core.CompilationUnit.getSourceRange(CompilationUnit.java:955)\n' + '\tat org.eclipse.jdt.ls.core.internal.handlers.FoldingRangeHandler.computeFoldingRanges(FoldingRangeHandler.java:77)\n' + '\tat org.eclipse.jdt.ls.core.internal.handlers.FoldingRangeHandler.foldingRange(FoldingRangeHandler.java:68)\n' + '\tat org.eclipse.jdt.ls.core.internal.syntaxserver.SyntaxLanguageServer.lambda$5(SyntaxLanguageServer.java:315)\n' + '\tat org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:75)\n' + '\tat java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:642)\n' + '\tat java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:479)\n' + '\tat java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)\n' + '\tat java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)\n' + '\tat java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)\n' + '\tat java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)\n' + '\tat java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)\n', level: 'info', timestamp: '2021-05-16 20:47:34.524' } { message: '[Error - 9:01:29 PM] May 16, 2021, 9:01:29 PM Unable to load IDecompiler class for jarFileContentProvider', level: 'info', timestamp: '2021-05-16 21:01:29.239' }
Current Result

Code can be compiled with Maven and can be run with process runner, but displays distracting problems that may or may not be false positives.

Expected Result

Given that it's a starter application generated with a Maven build system, and VS Code supports Maven Java projects, the expected result is that I'm able to open it and not get any error messages.

Additional info

When googling around for this, I saw people talk about it having to do with how they'd configured Java for VS Code. If I go to "Configure Java Runtime" via the command palette, here's what I see:

image
image
image

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

使用生成的 Maven 项目和 DemoCommand.java,按照列出的 Micronaut Launch 步骤重现该问题,然后运行 ./mvnw compile 并检查 Java extension 日志,包括 FoldingRangeHandler 错误。完成的标准是:启动项目能够在 VS Code 中打开,不出现报告的 Java(0) 和 Java(16777540) 问题,同时仍可编译和运行。

由索引模型根据 Issue 内容生成。

评估

技术栈
java, typescript, vscode
领域
devtools, tooling
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。