{"record":{"id":"68ba524879620cc7","repo":"quarkusio/quarkus","slug":"the-class-supertype-name-is-not-inside-the-ja","errorCode":null,"errorMessage":"The class ${superType.name()} is not inside the Jandex index","messagePattern":"The class (.+?) is not inside the Jandex index","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"independent-projects/resteasy-reactive/common/processor/src/main/java/org/jboss/resteasy/reactive/common/processor/JandexUtil.java","lineNumber":373,"sourceCode":"     * @param info the ClassInfo we want to check.\n     * @param parentName the name of the superclass we want to find.\n     * @return true if the given ClassInfo has <tt>parentName</tt> as a superclass.\n     * @throws RuntimeException if one of the superclasses is not indexed.\n     */\n    public static boolean isSubclassOf(IndexView index, ClassInfo info, DotName parentName) {\n        if (info.superName().equals(DOTNAME_OBJECT) || info.superName().equals(DOTNAME_RECORD)) {\n            return false;\n        }\n        if (info.superName().equals(parentName)) {\n            return true;\n        }\n\n        // climb up the hierarchy of classes\n        Type superType = info.superClassType();\n        ClassInfo superClass = index.getClassByName(superType.name());\n        if (superClass == null) {\n            // this can happens if the parent is not inside the Jandex index\n            throw new RuntimeException(\"The class \" + superType.name() + \" is not inside the Jandex index\");\n        }\n        return isSubclassOf(index, superClass, parentName);\n    }\n\n    /**\n     * Returns true if the given Jandex ClassInfo is a subclass of or inherits the given <tt>name</tt>.\n     *\n     * @param index the index to use to look up super classes.\n     * @param info the ClassInfo we want to check.\n     * @param name the name of the superclass or interface we want to find.\n     * @throws RuntimeException if one of the superclasses is not indexed.\n     */\n    public static boolean isImplementorOf(IndexView index, ClassInfo info, DotName name) {\n        return isImplementorOf(index, info, name, Collections.emptySet());\n    }\n\n    /**\n     * Returns true if the given Jandex ClassInfo is a subclass of or inherits the given <tt>name</tt>.","sourceCodeStart":355,"sourceCodeEnd":391,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/independent-projects/resteasy-reactive/common/processor/src/main/java/org/jboss/resteasy/reactive/common/processor/JandexUtil.java#L355-L391","documentation":"Guard in JandexUtil.isSubclassOf: while walking the superclass chain of an indexed class, a superclass is not itself present in the Jandex index, so ancestry cannot be determined. The missing superType name is interpolated; the Javadoc explicitly notes this throws when a superclass is not indexed.","triggerScenarios":"Thrown at independent-projects/resteasy-reactive/common/processor/src/main/java/org/jboss/resteasy/reactive/common/processor/JandexUtil.java:373 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add the jar containing the superclass as an indexed dependency","Restructure so the checked hierarchy is fully within indexed classes"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}