redhat-developer / quarkus-ls

Language server for Quarkus tooling
Eclipse Public License 2.0
44 stars 15 forks source link

ClassCastException seen in textDocument/codelens #859

Closed fbricon closed 1 year ago

fbricon commented 1 year ago

No idea what caused it, but basically I opened https://github.com/FroMage/RivieraDEV-Quarkus/blob/main/src/main/resources/templates/tags/fullSchedule.html

[Error - 14:08:17] Request textDocument/codeLens failed.
  Message: Internal error.
  Code: -32603 
java.util.concurrent.CompletionException: java.lang.ClassCastException: class com.redhat.qute.parser.expression.MethodPart cannot be cast to class com.redhat.qute.parser.expression.ObjectPart (com.redhat.qute.parser.expression.MethodPart and com.redhat.qute.parser.expression.ObjectPart are in unnamed module of loader 'app')
    at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source)
    at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(Unknown Source)
    at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(Unknown Source)
    at java.base/java.util.concurrent.CompletableFuture.thenApply(Unknown Source)
    at com.redhat.qute.services.QuteCodeLens.getCodelens(QuteCodeLens.java:64)
    at com.redhat.qute.services.QuteLanguageService.getCodeLens(QuteLanguageService.java:115)
    at com.redhat.qute.ls.template.TemplateFileTextDocumentService.lambda$codeLens$6(TemplateFileTextDocumentService.java:162)
    at com.redhat.qute.ls.commons.ModelTextDocuments.lambda$computeModelAsyncCompose$1(ModelTextDocuments.java:144)
    at java.base/java.util.concurrent.CompletableFuture$UniCompose.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)
Caused by: java.lang.ClassCastException: class com.redhat.qute.parser.expression.MethodPart cannot be cast to class com.redhat.qute.parser.expression.ObjectPart (com.redhat.qute.parser.expression.MethodPart and com.redhat.qute.parser.expression.ObjectPart are in unnamed module of loader 'app')
    at com.redhat.qute.parser.expression.Parts.getObjectPart(Parts.java:60)
    at com.redhat.qute.parser.template.Expression.getObjectPart(Expression.java:109)
    at com.redhat.qute.utils.UserTagUtils.collectUserTagParameters(UserTagUtils.java:129)
    at com.redhat.qute.utils.UserTagUtils.collectUserTagParameters(UserTagUtils.java:117)
    at com.redhat.qute.utils.UserTagUtils.collectUserTagParameters(UserTagUtils.java:123)
    at com.redhat.qute.utils.UserTagUtils.collectUserTagParameters(UserTagUtils.java:123)
    at com.redhat.qute.utils.UserTagUtils.collectUserTagParameters(UserTagUtils.java:101)
    at com.redhat.qute.services.QuteCodeLens.collectUserTagCodeLenses(QuteCodeLens.java:225)
    at com.redhat.qute.services.QuteCodeLens.lambda$getCodelens$0(QuteCodeLens.java:80)
    ... 14 more
fbricon commented 1 year ago

This should have been fixed by #845 in https://github.com/redhat-developer/quarkus-ls/blob/master/qute.ls/com.redhat.qute.ls/src/main/java/com/redhat/qute/parser/expression/Parts.java#L86

angelozerr commented 1 year ago

Indeed it should be fixed with this PR.