Closed xiaodanguoguo closed 1 year ago
@xiaodanguoguo I'm not an expert on that given extension but is it possibly related to https://github.com/redhat-developer/vscode-java/issues/1301. Can you confirm you have write access to the globalStoragePath
it is trying to access?
@xiaodanguoguo I'm not an expert on that given extension but is it possibly related to redhat-developer/vscode-java#1301. Can you confirm you have write access to the
globalStoragePath
it is trying to access?
It seems not relating to the issue, I am sure my storage path has read/write access. It works most of time but very slow and crashes in high possibility at more than two exception situations.
I don't think that we can do a lot here, since the origin of the error seems to be the language server and not Theia itself. If you continue having this problem, it might make more sense to ask in the vscode-java repo directly.
Description
I use the theia platform which already uses the 'Language Support for Java' to realize the feature of LSP. I use single container (K8s Pod) to open a new theia server for every user, however, not only It is very slow, but the edit box also disrupted usually, especially several user online concurrently.
Steps To Reproduce
I am sorry about cannot attach my project because it is owned by my company.
Log
``` !SESSION 2022-08-12 07:28:00.969 ----------------------------------------------- eclipse.buildId=unknown java.version=11.0.10 java.vendor=Oracle Corporation BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US Command-line arguments: -data /root/.theia/workspace-storage/25329750eecbab747ceb3e1f0b651e8c/redhat.java/jdt_ws !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:02.238 !MESSAGE class org.eclipse.jdt.ls.core.internal.JavaLanguageServerPlugin is started !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:02.444 !MESSAGE Main thread is waiting !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:02.500 !MESSAGE >> initialize !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:02.502 !MESSAGE Initializing Java Language Server 1.6.0.202111261427 !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:03.154 !MESSAGE Static Commands: [] !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:03.154 !MESSAGE Non-Static Commands: [java.edit.organizeImports, java.project.refreshDiagnostics, java.project.import, java.navigate.openTypeHierarchy, java.project.removeFromSourcePath, java.project.listSourcePaths, java.project.resolveStackTraceLocation, java.project.getAll, java.project.isTestFile, java.project.getClasspaths, java.navigate.resolveTypeHierarchy, java.edit.stringFormatting, java.project.getSettings, java.project.updateSourceAttachment, java.project.resolveSourceAttachment, java.project.addToSourcePath] !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:03.154 !MESSAGE Static Commands: [] !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:03.155 !MESSAGE Non-Static Commands: [vscode.java.checkProjectSettings, vscode.java.isOnClasspath, vscode.java.fetchUsageData, vscode.java.validateLaunchConfig, vscode.java.resolveClassFilters, vscode.java.resolveMainMethod, vscode.java.resolveClasspath, vscode.java.resolveBuildFiles, vscode.java.resolveMainClass, vscode.java.updateDebugSettings, vscode.java.resolveSourceUri, vscode.java.fetchPlatformSettings, vscode.java.buildWorkspace, vscode.java.startDebugSession, vscode.java.inferLaunchCommandLength, vscode.java.resolveElementAtSelection, vscode.java.resolveJavaExecutable] !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:03.155 !MESSAGE Static Commands: [] !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:03.155 !MESSAGE Non-Static Commands: [java.project.refreshLib, java.project.list, java.project.generateJar, java.project.getMainClasses, java.getPackageData, java.resolvePath] !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:03.160 !MESSAGE Wait for AutoBuildOffJob start !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:03.171 !MESSAGE Wait for AutoBuildOffJob end 11ms !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:03.171 !MESSAGE Starting org.eclipse.m2e.core !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:03.172 !MESSAGE Started org.eclipse.m2e.core 1ms !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:03.172 !MESSAGE ProjectRegistryRefreshJob finished 0ms !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:03.173 !MESSAGE Starting org.eclipse.buildship.core !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:03.190 !MESSAGE Started org.eclipse.buildship.core 18ms !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:03.201 !MESSAGE LoadingGradleVersionJob finished 10ms !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:03.224 !MESSAGE Creating the Java project jdt.ls-java-project !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:03.234 !MESSAGE >> initialized !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:03.301 !MESSAGE Finished creating the Java project jdt.ls-java-project !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:03.733 !MESSAGE Importing Maven project(s) !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:10.603 !MESSAGE Workspace initialized in 7399ms !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:10.636 !MESSAGE >> initialization job finished !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:10.662 !MESSAGE >> workspace/didChangeConfiguration !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:10.682 !MESSAGE >> New configuration: {java={home=/opt/jdk/jdk-11.0.10, jdt={ls={vmargs=-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx2G -Xms1G -javaagent:"/opt/web/ws-63013/plugins/gabrielbb.vscode-lombok-1.0.1/extension/server/lombok.jar"}}, errors={incompleteClasspath={severity=warning}}, configuration={checkProjectSettingsExclusions=true, updateBuildConfiguration=interactive, maven={userSettings=/opt/workspace/settings.xml, globalSettings=/opt/workspace/settings.xml, notCoveredPluginExecutionSeverity=warning}, workspaceCacheLimit=null, runtimes=[]}, trace={server=off}, import={maven={enabled=true}, gradle={enabled=true, wrapper={enabled=true}, version=null, home=null, java={home=null}, offline={enabled=false}, arguments=null, jvmArguments=null, user={home=null}}, exclusions=[**/node_modules/**, **/.metadata/**, **/archetype-resources/**, **/META-INF/maven/**], generatesMetadataFilesAtProjectRoot=false}, maven={downloadSources=false, updateSnapshots=false}, eclipse={downloadSources=false}, referencesCodeLens={enabled=false}, signatureHelp={enabled=false}, implementationsCodeLens={enabled=false}, format={enabled=true, settings={url=null, profile=null}, comments={enabled=true}, onType={enabled=true}, insertSpaces=true, tabSize=4.0}, saveActions={organizeImports=false}, project={referencedLibraries=[lib/**/*.jar], importOnFirstTimeStartup=automatic, importHint=true, resourceFilters=[node_modules, .git], exportJar={targetPath=${workspaceFolder}/${workspaceFolderBasename}.jar}}, contentProvider={preferred=null}, autobuild={enabled=true}, maxConcurrentBuilds=1.0, recommendations={dependency={analytics={show=true}}}, completion={maxResults=0.0, enabled=true, overwrite=true, guessMethodArguments=false, favoriteStaticMembers=[org.junit.Assert.*, org.junit.Assume.*, org.junit.jupiter.api.Assertions.*, org.junit.jupiter.api.Assumptions.*, org.junit.jupiter.api.DynamicContainer.*, org.junit.jupiter.api.DynamicTest.*, org.mockito.Mockito.*, org.mockito.ArgumentMatchers.*, org.mockito.Answers.*], filteredTypes=[java.awt.*, com.sun.*, sun.*, jdk.*, org.graalvm.*, io.micrometer.shaded.*], importOrder=[java, javax, com, org]}, foldingRange={enabled=true}, progressReports={enabled=true}, codeGeneration={hashCodeEquals={useJava7Objects=false, useInstanceof=false}, useBlocks=false, generateComments=false, toString={template=${object.className} [${member.name()}=${member.value}, ${otherMembers}], codeStyle=STRING_CONCATENATION, skipNullValues=false, listArrayContents=true, limitElements=0.0}, insertionLocation=afterCursor}, selectionRange={enabled=true}, showBuildStatusOnStart={enabled=notification}, server={launchMode=Hybrid}, sources={organizeImports={starThreshold=99.0, staticStarThreshold=99.0}}, imports={gradle={wrapper={checksums=[]}}}, templates={fileHeader=[], typeComment=[]}, references={includeAccessors=true, includeDecompiledSources=true}, typeHierarchy={lazyLoad=false}, settings={url=null}, symbols={includeSourceMethodDeclarations=false}, quickfix={showAt=line}, debug={logLevel=warn, settings={showHex=false, showStaticVariables=false, showQualifiedNames=false, showLogicalStructure=true, showToString=true, maxStringLength=0.0, numericPrecision=0.0, hotCodeReplace=manual, enableRunDebugCodeLens=true, forceBuildBeforeLaunch=true, onBuildFailureProceed=false, console=integratedTerminal, exceptionBreakpoint={skipClasses=[]}, stepping={skipClasses=[], skipSynthetics=false, skipStaticInitializers=false, skipConstructors=false}, jdwp={limitOfVariablesPerJdwpRequest=100.0, requestTimeout=3000.0}, vmArgs=}}, silentNotification=false, dependency={showMembers=false, syncWithFolderExplorer=true, autoRefresh=true, refreshDelay=2000.0, packagePresentation=flat}, help={firstView=auto, showReleaseNotes=true}}} !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:29.342 !MESSAGE >> build jobs finished !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:29.357 !MESSAGE >> workspace/executeCommand java.project.getAll !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:29.360 !MESSAGE >> workspace/executeCommand java.project.getAll !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:30.517 !MESSAGE >> registerWatchers' !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:30.519 !MESSAGE >> registerFeature 'workspace/didChangeWatchedFiles' !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:30.520 !MESSAGE >> watchers registered !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:39.118 !MESSAGE >> document/didOpen !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:39.136 !MESSAGE >> document/codeAction !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:39.143 !MESSAGE >> workspace/executeCommand java.project.getSettings !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:39.256 !MESSAGE >> document/documentSymbol !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:28:39.536 !MESSAGE Reconciled 1. Took 1 ms .... omit unnecessary log !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:33:08.444 !MESSAGE >> workspace/executeCommand vscode.java.resolveMainMethod !ENTRY org.eclipse.jdt.ls.core 1 0 2022-08-12 07:36:57.149 !MESSAGE >> workspace/didChangeWatchedFiles !ENTRY org.eclipse.jdt.ls.core 4 0 2022-08-12 07:36:57.154 !MESSAGE Failed to read package name from file:///root/.theia/workspace-storage/70b7bb8a503ab18901cc9c93c0ddeef8/redhat.java !STACK 0 java.io.FileNotFoundException: /root/.theia/workspace-storage/70b7bb8a503ab18901cc9c93c0ddeef8/redhat.java (Is a directory) at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:219) at java.base/java.io.FileInputStream.Current Result
The code completion stop work, if I type or do something in the window, the plugin seems reloading and diagnosis my project again, which will spend dozens of second to work again. It seems the plugin of Language Support for Java is incompatible with @jdt.ls(LSP)
there is another error if it helps: 'vscode java connection to server got closed. server will not be restarted'
Expected Result
It works smoothly and effectively, we cannot put the unreliable version online.
Additional Information
The plugin reports out of memory occasionally, my setting of memory is "-Xmx2G -Xms1G"
Another issue is that the plugin throws 'org.eclipse.jface.text.BadLocationException: Offset > length: 66 > 0' error occasionally when I edit my code on window. Moreover, the performance of completion code is very slower than raw version of "jdt.ls + monaco editor" which we were using until now.
the error info:
Environment