Skip to content

Hot Code Replace returns Cannot find any changed classes for hot replace! message #1481

@peerpalo

Description

@peerpalo

Similar to #1474, in this particular project configuration any attempt to use Hot Code Replace will produce a NullPointerException in Java Debugger. You can find a minimum sample project attached at the bottom.

[Error - 5:37:33 PM] May 25, 2024, 5:37:33 PM Problems occurred when invoking code from plug-in: "org.eclipse.jdt.ls.core".
Cannot invoke "java.lang.String.split(java.lang.String)" because "fullyQualifiedTypeName" is null
java.lang.NullPointerException: Cannot invoke "java.lang.String.split(java.lang.String)" because "fullyQualifiedTypeName" is null
	at com.microsoft.java.debug.plugin.internal.ResolveClasspathsHandler.getJavaProjectFromType(ResolveClasspathsHandler.java:117)
	at com.microsoft.java.debug.plugin.internal.Compile.compile(Compile.java:52)
	at com.microsoft.java.debug.plugin.internal.JavaDebugDelegateCommandHandler.executeCommand(JavaDebugDelegateCommandHandler.java:72)
	at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler$1.run(WorkspaceExecuteCommandHandler.java:230)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	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:616)
	at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:87)
	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)

[Error - 5:37:33 PM] May 25, 2024, 5:37:33 PM Error in calling delegate command handler
Cannot invoke "java.lang.String.split(java.lang.String)" because "fullyQualifiedTypeName" is null
java.lang.NullPointerException: Cannot invoke "java.lang.String.split(java.lang.String)" because "fullyQualifiedTypeName" is null
	at com.microsoft.java.debug.plugin.internal.ResolveClasspathsHandler.getJavaProjectFromType(ResolveClasspathsHandler.java:117)
	at com.microsoft.java.debug.plugin.internal.Compile.compile(Compile.java:52)
	at com.microsoft.java.debug.plugin.internal.JavaDebugDelegateCommandHandler.executeCommand(JavaDebugDelegateCommandHandler.java:72)
	at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceExecuteCommandHandler$1.run(WorkspaceExecuteCommandHandler.java:230)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	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:616)
	at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:87)
	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)

[Error - 5:37:33 PM] Request workspace/executeCommand failed.
  Message: Cannot invoke "java.lang.String.split(java.lang.String)" because "fullyQualifiedTypeName" is null
  Code: -32001 
[object Object]
Environment
  • Operating System: Windows 11 23H2 (OS Build 22631.3593)
  • JDK version: openjdk 17.0.6 2023-01-17, IBM Semeru Runtime Open Edition 17.0.6.0 (build 17.0.6+10)
  • Visual Studio Code version: 1.89.1
  • Java extension version: v1.30.0
  • Java Debugger extension version: v0.57.0
Steps To Reproduce
  1. Start a Maven Spring Boot project with multiple dependencies
  2. Attach debugger
  3. Change code, save and press "Hot Code Replace"
Additional Informations

https://github.com/peerpalo/hotcode-exception

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions