redhat-developer / redhat-developer/vscode-java

Can't resolve imports on an Eclipse project

オープン
#284 コメント 2 件 リアクション 2 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

bug ls-error/crash
主要言語
TypeScript
スター
2.3k
フォーク
546
平均マージ
20時間 1分
マージ済み PR(30日)
11

説明

Just tried the extension on an existing eclipse project, no imports could be resolved, not even the java.lang ones:

image

On output console:

[Warn - 3:12:21 PM] Aug 23, 2017 3:12:15 PM While loading class "org.eclipse.m2e.core.MavenPlugin", thread "Thread[Worker-2,5,main]" timed out waiting (5154ms) for thread "Thread[pool-1-thread-1,5,main]" to finish starting bundle "org.eclipse.m2e.core_1.8.1.20170728-1531 [52]". To avoid deadlock, thread "Thread[Worker-2,5,main]" is proceeding but "org.eclipse.m2e.core.MavenPlugin" may not be fully initialized.
Unable to acquire the state change lock for the module: osgi.identity; type="osgi.bundle"; version:Version="1.8.1.20170728-1531"; osgi.identity="org.eclipse.m2e.core"; singleton:="true" [id=52] STARTED [STARTED]
org.osgi.framework.BundleException: Unable to acquire the state change lock for the module: osgi.identity; type="osgi.bundle"; version:Version="1.8.1.20170728-1531"; osgi.identity="org.eclipse.m2e.core"; singleton:="true" [id=52] STARTED [STARTED]
at org.eclipse.osgi.container.Module.lockStateChange(Module.java:337)
at org.eclipse.osgi.container.Module.start(Module.java:401)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:468)
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:103)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:328)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:368)
at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:36)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:442)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.eclipse.jdt.ls.core.internal.managers.MavenProjectImporter.(MavenProjectImporter.java:53)
at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager.importers(ProjectsManager.java:176)
at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager.getImporter(ProjectsManager.java:160)
at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager.initializeProjects(ProjectsManager.java:73)
at org.eclipse.jdt.ls.core.internal.handlers.InitHandler$1.run(InitHandler.java:117)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
Caused by: java.util.concurrent.TimeoutException: Timeout after waiting 5 seconds to acquire the lock.
at org.eclipse.osgi.container.Module.lockStateChange(Module.java:334)
... 18 more

On the VSCode developer tools:

/C:/Program Files (x86)/Microsoft VS Code/resources/app/out/vs/workbench/workbench.main.js:29 Invalid arguments: Error: Invalid arguments
at new e (c:\Program Files (x86)\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:23:230953)
at asRange (C:\Users\gabriel.barroso.vscode\extensions\redhat.java-0.8.0\node_modules\vscode-languageclient\lib\protocolConverter.js:41:16)
at asLocation (C:\Users\gabriel.barroso.vscode\extensions\redhat.java-0.8.0\node_modules\vscode-languageclient\lib\protocolConverter.js:205:59)
at item.map (C:\Users\gabriel.barroso.vscode\extensions\redhat.java-0.8.0\node_modules\vscode-languageclient\lib\protocolConverter.js:195:43)
at Array.map (native)
at asDefinitionResult (C:\Users\gabriel.barroso.vscode\extensions\redhat.java-0.8.0\node_modules\vscode-languageclient\lib\protocolConverter.js:195:25)

Environment
  • Windows 10:
  • JDK version 8:
  • Visual Studio Code version 1.15:
  • Java extension version: 0.8.0

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず、既存の Eclipse プロジェクトで未解決の import の動作を再現し、stack trace にある MavenProjectImporter と ProjectsManager のエントリーポイントを調査します。language server の出力を vscode-languageclient protocolConverter.js のエラーと比較します。標準 import とプロジェクト import が、報告されている初期化または定義結果の失敗なしに解決されれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java, vscode
領域
devtools
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。