detekt / detekt-intellij-plugin

detekt plugin for IntelliJ
https://plugins.jetbrains.com/plugin/10761-detekt
Apache License 2.0
297 stars 39 forks source link

[IDE Plugin] Stackoverflow Error #478

Closed Nek-12 closed 1 year ago

Nek-12 commented 1 year ago

Steps to Reproduce

I am not sure how to reproduce this. I'm reporting an IDE error message

Your Environment

java.lang.StackOverflowError
    at java.base/java.util.Collections$SetFromMap.isEmpty(Collections.java:5682)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.runCheckCanceledHooks(ProgressManagerImpl.java:190)
    at com.intellij.openapi.progress.impl.CoreProgressManager.doCheckCanceled(CoreProgressManager.java:145)
    at com.intellij.openapi.progress.ProgressManager.checkCanceled(ProgressManager.java:227)
    at com.intellij.openapi.progress.ProgressIndicatorProvider.checkCanceled(ProgressIndicatorProvider.java:23)
    at com.intellij.extapi.psi.StubBasedPsiElementBase.getGreenStub(StubBasedPsiElementBase.java:350)
    at com.intellij.extapi.psi.StubBasedPsiElementBase.getStubOrPsiChild(StubBasedPsiElementBase.java:360)
    at org.jetbrains.kotlin.psi.KtClassOrObject.getSuperTypeList(KtClassOrObject.kt:43)
    at org.jetbrains.kotlin.psi.KtClassOrObject.getSuperTypeListEntries(KtClassOrObject.kt:45)
    at org.jetbrains.uast.kotlin.AbstractKotlinUClass$delegateExpressions$2.invoke(AbstractKotlinUClass.kt:43)
    at org.jetbrains.uast.kotlin.AbstractKotlinUClass$delegateExpressions$2.invoke(AbstractKotlinUClass.kt:42)
    at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
    at org.jetbrains.uast.kotlin.AbstractKotlinUClass.getDelegateExpressions(AbstractKotlinUClass.kt:42)
    at org.jetbrains.uast.kotlin.AbstractKotlinUClass.accept(AbstractKotlinUClass.kt:97)
    at io.ktor.ide.oas.KtorOasStatusCodeVisitor.visitExpression(KtorOasArgumentVisitors.kt:45)
    at org.jetbrains.uast.visitor.UastVisitor.visitSimpleNameReferenceExpression(UastVisitor.kt:27)
    at org.jetbrains.uast.USimpleNameReferenceExpression.accept(USimpleNameReferenceExpression.kt:19)
    at org.jetbrains.uast.UEnumConstant.accept(UVariable.kt:148)
    at org.jetbrains.uast.internal.ImplementationUtilsKt.acceptList(implementationUtils.kt:15)
    at org.jetbrains.uast.kotlin.AbstractKotlinUClass.accept(AbstractKotlinUClass.kt:99)
    at io.ktor.ide.oas.KtorOasStatusCodeVisitor.visitExpression(KtorOasArgumentVisitors.kt:45)
    at org.jetbrains.uast.visitor.UastVisitor.visitSimpleNameReferenceExpression(UastVisitor.kt:27)
    at org.jetbrains.uast.USimpleNameReferenceExpression.accept(USimpleNameReferenceExpression.kt:19)
    at org.jetbrains.uast.UEnumConstant.accept(UVariable.kt:148)
    at org.jetbrains.uast.internal.ImplementationUtilsKt.acceptList(implementationUtils.kt:15)
    at org.jetbrains.uast.kotlin.AbstractKotlinUClass.accept(AbstractKotlinUClass.kt:99)
    at io.ktor.ide.oas.KtorOasStatusCodeVisitor.visitExpression(KtorOasArgumentVisitors.kt:45)
    at org.jetbrains.uast.visitor.UastVisitor.visitSimpleNameReferenceExpression(UastVisitor.kt:27)
    at org.jetbrains.uast.USimpleNameReferenceExpression.accept(USimpleNameReferenceExpression.kt:19)
    at org.jetbrains.uast.UEnumConstant.accept(UVariable.kt:148)
    at org.jetbrains.uast.internal.ImplementationUtilsKt.acceptList(implementationUtils.kt:15)
    at org.jetbrains.uast.kotlin.AbstractKotlinUClass.accept(AbstractKotlinUClass.kt:99)
    at io.ktor.ide.oas.KtorOasStatusCodeVisitor.visitExpression(KtorOasArgumentVisitors.kt:45)
    at org.jetbrains.uast.visitor.UastVisitor.visitSimpleNameReferenceExpression(UastVisitor.kt:27)
    at org.jetbrains.uast.USimpleNameReferenceExpression.accept(USimpleNameReferenceExpression.kt:19)
    at org.jetbrains.uast.UEnumConstant.accept(UVariable.kt:148)
    at org.jetbrains.uast.internal.ImplementationUtilsKt.acceptList(implementationUtils.kt:15)
    at org.jetbrains.uast.kotlin.AbstractKotlinUClass.accept(AbstractKotlinUClass.kt:99)
    at io.ktor.ide.oas.KtorOasStatusCodeVisitor.visitExpression(KtorOasArgumentVisitors.kt:45)
    at org.jetbrains.uast.visitor.UastVisitor.visitSimpleNameReferenceExpression(UastVisitor.kt:27)
    at org.jetbrains.uast.USimpleNameReferenceExpression.accept(USimpleNameReferenceExpression.kt:19)
    at org.jetbrains.uast.UEnumConstant.accept(UVariable.kt:148)
    at org.jetbrains.uast.internal.ImplementationUtilsKt.acceptList(implementationUtils.kt:15)
    at org.jetbrains.uast.kotlin.AbstractKotlinUClass.accept(AbstractKotlinUClass.kt:99)
    at io.ktor.ide.oas.KtorOasStatusCodeVisitor.visitExpression(KtorOasArgumentVisitors.kt:45)
    at org.jetbrains.uast.visitor.UastVisitor.visitSimpleNameReferenceExpression(UastVisitor.kt:27)
    at org.jetbrains.uast.USimpleNameReferenceExpression.accept(USimpleNameReferenceExpression.kt:19)
    /* ... repeats 50 times or so ... */

This seems to have happened when I pressed "Generate Ktor OpenAPI documentation" in the IDE

Nek-12 commented 1 year ago

If I look at the stacktrace, there is literally nothing related to Detekt, but the error is marked as exception in the Detekt plugin.

image

Nek-12 commented 1 year ago

I'm closing this in favor of https://youtrack.jetbrains.com/issue/KTOR-5972 to not bother you with another issue for now. I may reopen it based on the results of our investigation

arturbosch commented 1 year ago

hey @Nek-12 which IntelliJ version do you use? Mainly in older IntelliJ's Kotlin compiler stacktraces are attributed to detekt, see #271