mfussenegger / nvim-jdtls

Extensions for the built-in LSP support in Neovim for eclipse.jdt.ls
GNU General Public License v3.0
1.07k stars 61 forks source link

When running any junit 4/5 test: No configuration found/ failed to resolve classpath #314

Closed scottrbrtsn closed 2 years ago

scottrbrtsn commented 2 years ago

LSP client configuration

Ftplugin/Java.lua

vim.opt_local.shiftwidth = 2
vim.opt_local.tabstop = 2
vim.opt_local.cmdheight = 2 -- more space in the neovim command line for displaying messages

local status, jdtls = pcall(require, "jdtls")
if not status then
  return
end

-- Determine OS
local home = os.getenv "HOME"
if vim.fn.has "mac" == 1 then
  WORKSPACE_PATH = home .. "/workspace/"
  CONFIG = "mac"
elseif vim.fn.has "unix" == 1 then
  WORKSPACE_PATH = home .. "/workspace/"
  CONFIG = "linux"
else
  print "Unsupported system"
end

-- Find root of project
local root_markers = { ".git", "mvnw", "gradlew", "pom.xml", "build.gradle" }
local root_dir = require("jdtls.setup").find_root(root_markers)
if root_dir == "" then
  return
end

local extendedClientCapabilities = jdtls.extendedClientCapabilities
extendedClientCapabilities.resolveAdditionalTextEditsSupport = true

local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ":p:h:t")

local workspace_dir = WORKSPACE_PATH .. project_name

JAVA_DAP_ACTIVE = true

local bundles = { vim.fn.glob(home ..
  '/packages/repos/java-debug/com.microsoft.java.debug.plugin/target/com.microsoft.java.debug.plugin-*.jar'), }

for _, bundle in ipairs(vim.split(vim.fn.glob(home .. '/packages/repos/vscode-java-test/server/*.jar'), '\n')) do
  table.insert(bundles, bundle)
end

--local bundles = {}
--
--if JAVA_DAP_ACTIVE then
--  vim.list_extend(bundles, vim.split(vim.fn.glob(home .. "/.config/nvim/vscode-java-test/server/*.jar"), "\n"))
--  vim.list_extend(
--    bundles,
--    vim.split(
--      vim.fn.glob(
--        home .. "/.config/nvim/java-debug/com.microsoft.java.debug.plugin/target/com.microsoft.java.debug.plugin-*.jar"
--      ),
--      "\n"
--    )
--  )
--end

-- See `:help vim.lsp.start_client` for an overview of the supported `config` options.
local config = {
  -- The command that starts the language server
  -- See: https://github.com/eclipse/eclipse.jdt.ls#running-from-the-command-line
  cmd = {

    -- 💀
    "java", -- or '/path/to/java11_or_newer/bin/java'
    -- depends on if `java` is in your $PATH env variable and if it points to the right version.

    "-Declipse.application=org.eclipse.jdt.ls.core.id1",
    "-Dosgi.bundles.defaultStartLevel=4",
    "-Declipse.product=org.eclipse.jdt.ls.core.product",
    "-Dlog.protocol=true",
    "-Dlog.level=ALL",
    "-javaagent:" .. home .. "/.local/share/nvim/lsp_servers/jdtls/lombok.jar",
    "-Xms1g",
    "--add-modules=ALL-SYSTEM",
    "--add-opens",
    "java.base/java.util=ALL-UNNAMED",
    "--add-opens",
    "java.base/java.lang=ALL-UNNAMED",

    -- 💀
    "-jar",
    vim.fn.glob(home ..
      "/.local/share/nvim/lsp_servers/jdtls/plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar"),
    -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                       ^^^^^^^^^^^^^^
    -- Must point to the                                                     Change this to
    -- [eclipse.jdt.ls](http://eclipse.jdt.ls/) installation                                           the actual version

    -- 💀
    "-configuration",
    home .. "/.local/share/nvim/lsp_servers/jdtls/config_mac",
    -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        ^^^^^^
    -- Must point to the                      Change to one of `linux`, `win` or `mac`
    -- [eclipse.jdt.ls](http://eclipse.jdt.ls/) installation            Depending on your system.

    -- 💀
    -- See `data directory configuration` section in the README
    "-data",
    workspace_dir,
  },

  on_attach = require("user.lsp.handlers").on_attach,
  capabilities = require("user.lsp.handlers").capabilities,

  -- 💀
  -- This is the default if not provided, you can remove it. Or adjust as needed.
  -- One dedicated LSP server & client will be started per unique root_dir
  root_dir = root_dir,

  -- Here you can configure [eclipse.jdt.ls](http://eclipse.jdt.ls/) specific settings
  -- See https://github.com/eclipse/eclipse.jdt.ls/wiki/Running-the-JAVA-LS-server-from-the-command-line#initialize-request
  -- or https://github.com/redhat-developer/vscode-java#supported-vs-code-settings
  -- for a list of options
  settings = {
    java = {
      eclipse = {
        downloadSources = true,
      },
      configuration = {
        updateBuildConfiguration = "interactive",
      },
      maven = {
        downloadSources = true,
      },
      implementationsCodeLens = {
        enabled = true,
      },
      referencesCodeLens = {
        enabled = true,
      },
      references = {
        includeDecompiledSources = true,
      },
      -- Set this to true to use jdtls as your formatter
      format = {
        enabled = false,
      },
    },
    signatureHelp = { enabled = true },
    completion = {
      favoriteStaticMembers = {
        "org.hamcrest.MatcherAssert.assertThat",
        "org.hamcrest.Matchers.*",
        "org.hamcrest.CoreMatchers.*",
        "org.junit.jupiter.api.Assertions.*",
        "java.util.Objects.requireNonNull",
        "java.util.Objects.requireNonNullElse",
        "org.mockito.Mockito.*",
      },
    },
    contentProvider = { preferred = "fernflower" },
    extendedClientCapabilities = extendedClientCapabilities,
    sources = {
      organizeImports = {
        starThreshold = 9999,
        staticStarThreshold = 9999,
      },
    },
    codeGeneration = {
      toString = {
        template = "${object.className}{${[member.name](http://member.name/)()}=${member.value}, ${otherMembers}}",
      },
      useBlocks = true,
    },
  },

  flags = {
    allow_incremental_sync = true,
  },

  -- Language server `initializationOptions`
  -- You need to extend the `bundles` with paths to jar files
  -- if you want to use additional [eclipse.jdt.ls](http://eclipse.jdt.ls/) plugins.
  --
  -- See https://github.com/mfussenegger/nvim-jdtls#java-debug-installation
  --
  -- If you don't plan on using the debugger or other [eclipse.jdt.ls](http://eclipse.jdt.ls/) plugins you can remove this
  init_options = {
    -- bundles = {},
    bundles = bundles,
  },
}

vim.api.nvim_create_autocmd({ "BufWritePost" }, {
  pattern = { "*.java" },
  callback = function()
    vim.lsp.codelens.refresh()
  end,
})

-- This starts a new client & server,
-- or attaches to an existing client & server depending on the `root_dir`.
require("jdtls").start_or_attach(config)

vim.cmd "command! -buffer -nargs=? -complete=custom,v:lua.require'jdtls'._complete_compile JdtCompile lua require('jdtls').compile(<f-args>)"
vim.cmd "command! -buffer -nargs=? -complete=custom,v:lua.require'jdtls'._complete_set_runtime JdtSetRuntime lua require('jdtls').set_runtime(<f-args>)"
vim.cmd "command! -buffer JdtUpdateConfig lua require('jdtls').update_project_config()"
vim.cmd "command! -buffer JdtBytecode lua require('jdtls').javap()"

-- Shorten function name
local keymap = vim.keymap.set
-- Silent keymap option
local opts = { silent = true }

keymap("n", "<leader>jo", "<Cmd>lua require'jdtls'.organize_imports()<CR>", opts)
keymap("n", "<leader>jv", "<Cmd>lua require('jdtls').extract_variable()<CR>", opts)
keymap("n", "<leader>jc", "<Cmd>lua require('jdtls').extract_constant()<CR>", opts)
keymap("n", "<leader>jt", "<Cmd>lua require'jdtls'.test_nearest_method()<CR>", opts)
keymap("n", "<leader>jT", "<Cmd>lua require'jdtls'.test_class()<CR>", opts)
keymap("n", "<leader>jp", "<Cmd>lua require'jdtls'.pick_test()<CR>", opts)
keymap("n", "<leader>ju", "<Cmd>JdtUpdateConfig<CR>", opts)

keymap("v", "<leader>jv", "<Esc><Cmd>lua require('jdtls').extract_variable(true)<CR>", opts)
keymap("v", "<leader>jc", "<Esc><Cmd>lua require('jdtls').extract_constant(true)<CR>", opts)
keymap("v", "<leader>jm", "<Esc><Cmd>lua require('jdtls').extract_method(true)<CR>", opts)

Eclipse.jdt.ls version

No response

Steps to Reproduce

after you installing vscode java-test and Java-debug. DAP seems to work fine.

In project junit5-Jupiter-started-gradle From junit-samples

  1. nvim .
  2. Navigate to src/test/Java/com/example/project/CalculatorTests.java
  3. Wait for jdtls server to start just fine
  4. Set cursor to line 25.
  5. :lua reqire’jdtls’.test_nearest_method()

Expected Result

The test would run

Actual Result

JdtShowLogs

!MESSAGE >> New configuration: {extendedClientCapabilities={moveRefactoringSupport=true, generateDelegateMethodsPromptSupport=true, generateConstructorsPromptSupport=true, advancedOrganizeImportsSupport=true, advancedExtractRefactoringSupport=true, hashCodeEqualsPromptSupport=true, classFileContentsSupport=true, progressReportProvider=true, resolveAdditionalTextEditsSupport=true, generateToStringPromptSupport=true, inferSelectionSupport=[extractMethod, extractVariable, extractConstant], overrideMethodsPromptSupport=true}, signatureHelp={enabled=true}, contentProvider={preferred=fernflower}, completion={favoriteStaticMembers=[org.hamcrest.MatcherAssert.assertThat, org.hamcrest.Matchers.*, org.hamcrest.CoreMatchers.*, org.junit.jupiter.api.Assertions.*, java.util.Objects.requireNonNull, java.util.Objects.requireNonNullElse, org.mockito.Mockito.*]}, codeGeneration={toString={template=${object.className}{${[member.name](http://member.name/)()}=${member.value}, ${otherMembers}}}, useBlocks=true}, sources={organizeImports={starThreshold=9999.0, staticStarThreshold=9999.0}}, java={implementationsCodeLens={enabled=true}, maven={downloadSources=true}, progressReports={enabled=true}, references={includeDecompiledSources=true}, eclipse={downloadSources=true}, referencesCodeLens={enabled=true}, configuration={updateBuildConfiguration=interactive}, format={enabled=false}}}

!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-01 08:02:17.158
!MESSAGE >> document/didOpen

!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-01 08:02:17.753
!MESSAGE >> document/documentHighlight

!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-01 08:02:17.756
!MESSAGE >> document/codeLens

!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-01 08:02:17.758
!MESSAGE >> workspace/executeCommand vscode.java.resolveMainClass

!ENTRY java-debug 1 0 2022-09-01 08:02:17.774
!MESSAGE Starting com.microsoft.java.debug.plugin

!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-01 08:02:17.791
!MESSAGE Reconciled 1. Took 0 ms

!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-01 08:02:17.816
!MESSAGE >> codeLens/resolve

!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-01 08:02:17.818
!MESSAGE >> codeLens/resolve

!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-01 08:02:17.819
!MESSAGE >> codeLens/resolve

!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-01 08:02:18.064
!MESSAGE begin problem for /CalculatorTests.java

!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-01 08:02:18.065
!MESSAGE 0 problems reported for /CalculatorTests.java

!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-01 08:02:18.067
!MESSAGE Validated 1. Took 265 ms

!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-01 08:02:18.082
!MESSAGE >> build jobs finished

!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-01 08:02:18.085
!MESSAGE >> registerWatchers'

!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-01 08:02:18.085
!MESSAGE >> watchers registered

!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-01 08:02:21.210
!MESSAGE >> document/documentHighlight

!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-01 08:02:22.209
!MESSAGE >> workspace/executeCommand vscode.java.test.findTestTypesAndMethods

!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-01 08:02:22.257
!MESSAGE >> workspace/executeCommand vscode.java.test.junit.argument

!ENTRY com.microsoft.java.test.plugin 4 0 2022-09-01 08:02:22.354
!MESSAGE failed to resolve the classpath.
!STACK 0

java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at com.microsoft.java.test.plugin.launchers.JUnitLaunchConfigurationDelegate.getJUnitLaunchArguments(JUnitLaunchConfigurationDelegate.java:78)
at com.microsoft.java.test.plugin.launchers.JUnitLaunchUtils.resolveLaunchArgument(JUnitLaunchUtils.java:102)
at com.microsoft.java.test.plugin.handler.TestDelegateCommandHandler.executeCommand(TestDelegateCommandHandler.java:50)
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:529)
at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:75)
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:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: java.lang.NullPointerException: Cannot invoke "org.osgi.framework.Bundle.getHeaders()" because "bundle" is null
at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate$ClasspathLocalizer.localURL(JUnitLaunchConfigurationDelegate.java:737)
at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate$ClasspathLocalizer.entryString(JUnitLaunchConfigurationDelegate.java:726)
at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate.getVMRunnerConfiguration(JUnitLaunchConfigurationDelegate.java:205)
... 19 more
Root exception:
java.lang.NullPointerException: Cannot invoke "org.osgi.framework.Bundle.getHeaders()" because "bundle" is null
at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate$ClasspathLocalizer.localURL(JUnitLaunchConfigurationDelegate.java:737)
at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate$ClasspathLocalizer.entryString(JUnitLaunchConfigurationDelegate.java:726)
at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate.getVMRunnerConfiguration(JUnitLaunchConfigurationDelegate.java:205)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at com.microsoft.java.test.plugin.launchers.JUnitLaunchConfigurationDelegate.getJUnitLaunchArguments(JUnitLaunchConfigurationDelegate.java:78)
at com.microsoft.java.test.plugin.launchers.JUnitLaunchUtils.resolveLaunchArgument(JUnitLaunchUtils.java:102)
at com.microsoft.java.test.plugin.handler.TestDelegateCommandHandler.executeCommand(TestDelegateCommandHandler.java:50)
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:529)
at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:75)
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:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

!ENTRY org.eclipse.jdt.ls.core 1 0 2022-09-01 08:02:22.356
!MESSAGE >> workspace/executeCommand java.project.getClasspaths

!ENTRY org.eclipse.buildship.core 2 0 2022-09-01 08:02:22.363
!MESSAGE Cannot collect dependency scope information for launch configuration 1662037342359
!STACK 1
org.eclipse.core.runtime.CoreException: The input type of the launch configuration does not exist
at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate.abort(JUnitLaunchConfigurationDelegate.java:774)
at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate.getTestTarget(JUnitLaunchConfigurationDelegate.java:768)
at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate.evaluateTests(JUnitLaunchConfigurationDelegate.java:369)
at org.eclipse.buildship.core.internal.launch.SupportedLaunchConfigType$RelaxedJUnitLaunchConfigurationDelegate.evaluateTests(SupportedLaunchConfigType.java:139)
at org.eclipse.buildship.core.internal.launch.SupportedLaunchConfigType$2.getSourceFolders(SupportedLaunchConfigType.java:70)
at org.eclipse.buildship.core.internal.launch.SupportedLaunchConfigType.collectSourceFolders(SupportedLaunchConfigType.java:110)
at org.eclipse.buildship.core.internal.launch.LaunchConfigurationScope.from(LaunchConfigurationScope.java:57)
at org.eclipse.buildship.core.internal.launch.GradleClasspathProvider.filterUnusedDependencies(GradleClasspathProvider.java:71)
at org.eclipse.buildship.core.internal.launch.GradleClasspathProvider.computeUnresolvedClasspath(GradleClasspathProvider.java:61)
at org.eclipse.jdt.internal.launching.RuntimeClasspathProvider.computeUnresolvedClasspath(RuntimeClasspathProvider.java:60)
at org.eclipse.jdt.launching.JavaRuntime.computeUnresolvedRuntimeClasspath(JavaRuntime.java:1647)
at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspathAndModulepath(AbstractJavaLaunchConfigurationDelegate.java:463)
at org.eclipse.jdt.ls.core.internal.commands.ProjectCommand$1.run(ProjectCommand.java:173)
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.ls.core.internal.commands.ProjectCommand.getClasspaths(ProjectCommand.java:170)
at org.eclipse.jdt.ls.core.internal.JDTDelegateCommandHandler.executeCommand(JDTDelegateCommandHandler.java:82)
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:529)
at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:75)
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:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
!SUBENTRY 1 org.eclipse.jdt.junit.core 4 101 2022-09-01 08:02:22.363
!MESSAGE The input type of the launch configuration does not exist

!ENTRY org.eclipse.buildship.core 2 0 2022-09-01 08:02:22.364
!MESSAGE Cannot collect dependency scope information for launch configuration 1662037342359
!STACK 1
org.eclipse.core.runtime.CoreException: The input type of the launch configuration does not exist
at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate.abort(JUnitLaunchConfigurationDelegate.java:774)
at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate.getTestTarget(JUnitLaunchConfigurationDelegate.java:768)
at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate.evaluateTests(JUnitLaunchConfigurationDelegate.java:369)
at org.eclipse.buildship.core.internal.launch.SupportedLaunchConfigType$RelaxedJUnitLaunchConfigurationDelegate.evaluateTests(SupportedLaunchConfigType.java:139)
at org.eclipse.buildship.core.internal.launch.SupportedLaunchConfigType$2.getSourceFolders(SupportedLaunchConfigType.java:70)
at org.eclipse.buildship.core.internal.launch.SupportedLaunchConfigType.collectSourceFolders(SupportedLaunchConfigType.java:110)
at org.eclipse.buildship.core.internal.launch.LaunchConfigurationScope.from(LaunchConfigurationScope.java:57)
at org.eclipse.buildship.core.internal.launch.GradleClasspathProvider.resolveProject(GradleClasspathProvider.java:145)
at org.eclipse.buildship.core.internal.launch.GradleClasspathProvider.resolveProject(GradleClasspathProvider.java:129)
at org.eclipse.buildship.core.internal.launch.GradleClasspathProvider.resolveClasspath(GradleClasspathProvider.java:98)
at org.eclipse.jdt.internal.launching.RuntimeClasspathProvider.resolveClasspath(RuntimeClasspathProvider.java:68)
at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1664)
at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspathAndModulepath(AbstractJavaLaunchConfigurationDelegate.java:464)
at org.eclipse.jdt.ls.core.internal.commands.ProjectCommand$1.run(ProjectCommand.java:173)
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.ls.core.internal.commands.ProjectCommand.getClasspaths(ProjectCommand.java:170)
at org.eclipse.jdt.ls.core.internal.JDTDelegateCommandHandler.executeCommand(JDTDelegateCommandHandler.java:82)
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:529)
at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:75)
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:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
!SUBENTRY 1 org.eclipse.jdt.junit.core 4 101 2022-09-01 08:02:22.364
!MESSAGE The input type of the launch configuration does not exist

!ENTRY org.eclipse.buildship.core 2 0 2022-09-01 08:02:22.365
!MESSAGE Cannot collect dependency scope information for launch configuration 1662037342359
!STACK 1
org.eclipse.core.runtime.CoreException: The input type of the launch configuration does not exist
at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate.abort(JUnitLaunchConfigurationDelegate.java:774)
at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate.getTestTarget(JUnitLaunchConfigurationDelegate.java:768)
at org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate.evaluateTests(JUnitLaunchConfigurationDelegate.java:369)
at org.eclipse.buildship.core.internal.launch.SupportedLaunchConfigType$RelaxedJUnitLaunchConfigurationDelegate.evaluateTests(SupportedLaunchConfigType.java:139)
at org.eclipse.buildship.core.internal.launch.SupportedLaunchConfigType$2.getSourceFolders(SupportedLaunchConfigType.java:70)
at org.eclipse.buildship.core.internal.launch.SupportedLaunchConfigType.collectSourceFolders(SupportedLaunchConfigType.java:110)
at org.eclipse.buildship.core.internal.launch.LaunchConfigurationScope.from(LaunchConfigurationScope.java:57)
at org.eclipse.buildship.core.internal.workspace.GradleClasspathContainerRuntimeClasspathEntryResolver.resolveRuntimeClasspathEntry(GradleClasspathContainerRuntimeClasspathEntryResolver.java:55)
at org.eclipse.jdt.internal.launching.RuntimeClasspathEntryResolver.resolveRuntimeClasspathEntry(RuntimeClasspathEntryResolver.java:49)
at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspathEntry(JavaRuntime.java:1262)
at org.eclipse.buildship.core.internal.launch.GradleClasspathProvider.resolveClasspath(GradleClasspathProvider.java:101)
at org.eclipse.jdt.internal.launching.RuntimeClasspathProvider.resolveClasspath(RuntimeClasspathProvider.java:68)
at org.eclipse.jdt.launching.JavaRuntime.resolveRuntimeClasspath(JavaRuntime.java:1664)
at org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate.getClasspathAndModulepath(AbstractJavaLaunchConfigurationDelegate.java:464)
at org.eclipse.jdt.ls.core.internal.commands.ProjectCommand$1.run(ProjectCommand.java:173)
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.ls.core.internal.commands.ProjectCommand.getClasspaths(ProjectCommand.java:170)
at org.eclipse.jdt.ls.core.internal.JDTDelegateCommandHandler.executeCommand(JDTDelegateCommandHandler.java:82)
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:529)
at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:75)
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:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
!SUBENTRY 1 org.eclipse.jdt.junit.core 4 101 2022-09-01 08:02:22.365
!MESSAGE The input type of the launch configuration does not exist
mfussenegger commented 2 years ago

Works fine for me. Looks like something is wrong with your plugin installation or the bundles definition. If you compiled eclipse yourself, make sure you used the same JDK version for everything.

Also keep in mind that there were just a couple of new releases for the full stack and the bundle list changed. See https://github.com/microsoft/vscode-java-test/commit/54b5ad5459e102ba64ecb217ee74e4f24a0e3de9

Given that you're using globs it should be fine, but you can double check by listing your actual bundles:

:lua =vim.lsp.get_active_clients()[1].config.init_options.bundles

Here are mine for reference:

/java-debug/com.microsoft.java.debug.plugin/target/com.microsoft.java.debug.plugin-0.40.0.jar",
/vscode-java-test/j[...]/target/com.microsoft.java.test.plugin-0.37.0.jar",
/vscode-java-test/j[...]site/target/repository/plugins/junit-jupiter-api_5.9.0.jar",
/vscode-java-test/j[...]site/target/repository/plugins/junit-jupiter-engine_5.9.0.jar",
/vscode-java-test/j[...]site/target/repository/plugins/junit-jupiter-migrationsupport_5.9.0.jar",
/vscode-java-test/j[...]site/target/repository/plugins/junit-jupiter-params_5.9.0.jar",
/vscode-java-test/j[...]site/target/repository/plugins/junit-platform-commons_1.9.0.jar",
/vscode-java-test/j[...]site/target/repository/plugins/junit-platform-engine_1.9.0.jar",
/vscode-java-test/j[...]site/target/repository/plugins/junit-platform-launcher_1.9.0.jar",
/vscode-java-test/j[...]site/target/repository/plugins/junit-platform-runner_1.9.0.jar",
/vscode-java-test/j[...]site/target/repository/plugins/junit-platform-suite-api_1.9.0.jar",
/vscode-java-test/j[...]site/target/repository/plugins/junit-platform-suite-commons_1.9.0.jar",
/vscode-java-test/j[...]site/target/repository/plugins/junit-platform-suite-engine_1.9.0.jar",
/vscode-java-test/j[...]site/target/repository/plugins/junit-vintage-engine_5.9.0.jar",
/vscode-java-test/j[...]site/target/repository/plugins/org.opentest4j_1.2.0.v20190826-0900.jar",
/vscode-java-test/j[...]site/target/repository/plugins/org.apiguardian.api_1.1.2.jar",
/vscode-java-test/j[...]site/target/repository/plugins/org.eclipse.jdt.junit4.runtime_1.3.0.v20220609-1843.jar",
/vscode-java-test/j[...]site/target/repository/plugins/org.eclipse.jdt.junit5.runtime_1.1.0.v20220715-1030.jar",
/vscode-java-test/j[...]site/target/repository/plugins/org.opentest4j_1.2.0.v20190826-0900.jar"
scottrbrtsn commented 2 years ago

ok that's something...I pulled latest and rebuilt vscode-java-test but then trying to list bundles I get {"",""}

scottrbrtsn commented 2 years ago

There’s a cluster of issues but now I see.

It seems I needed the latest from vscode-Java-test. Im good this can be closed.

Missed the latest commit by like 1 day… LOL