Description
I'm not able to use rename, quick fix, go to definition when editing class that extends sealed class.
Environment
- Operating System: Windows 11
- JDK version: 22
- Visual Studio Code version: Version: 1.88.1 (user setup)
- Java extension version: v1.30.0
Steps To Reproduce
- Try to rename argument of method in class that extends sealed class.
[Please attach a sample project reproducing the error]
https://github.com/UnnamedXAer/java_language_server_issue_sealed
// .../Storage.java
public abstract sealed class Storage implements AutoCloseable
permits SqlStorage {
public abstract Object get(int id) throws Exception;
}
// .../SqlStorage.java
public final class SqlStorage extends Storage {
@Override
public void close() throws Exception {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'close'");
}
@Override
public Object get(int id) throws Exception {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'get'");
}
private String add(String a) {
return String.format("%s%s", a, a);
}
}
logs
https://github.com/UnnamedXAer/java_language_server_issue_sealed/blob/master/README.md#full-log
!ENTRY org.eclipse.jdt.ls.core 4 0 2024-04-30 08:54:03.183
!MESSAGE Error computing hover
!STACK 0
java.lang.NullPointerException: Cannot read the array length because "superPermittedTypes" is null
at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.checkPermitsAndAdd(SourceTypeBinding.java:1346)
at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.checkPermitsInType(SourceTypeBinding.java:1202)
at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.faultInTypesForFieldsAndMethods(SourceTypeBinding.java:1116)
at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:608)
at org.eclipse.jdt.internal.codeassist.SelectionEngine.select(SelectionEngine.java:1076)
at org.eclipse.jdt.internal.core.Openable.codeSelect(Openable.java:166)
at org.eclipse.jdt.internal.core.CompilationUnit.codeSelect(CompilationUnit.java:382)
at org.eclipse.jdt.internal.core.CompilationUnit.codeSelect(CompilationUnit.java:375)
at org.eclipse.jdt.ls.core.internal.JDTUtils.findElementsAtSelection(JDTUtils.java:1036)
at org.eclipse.jdt.ls.core.internal.HoverInfoProvider.computeHover(HoverInfoProvider.java:101)
at org.eclipse.jdt.ls.core.internal.handlers.HoverHandler.computeHover(HoverHandler.java:57)
at org.eclipse.jdt.ls.core.internal.handlers.HoverHandler.hover(HoverHandler.java:43)
at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$5(JDTLanguageServer.java:666)
at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:87)
at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$Completion.exec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Current Result
Popup saying 'Internal error';
Expected Result
Additional Informations
In more advanced scenarios (classes) most of the LSP related features do not work.