{"record":{"id":"f8ff941afceb0132","repo":"quarkusio/quarkus","slug":"unable-to-parse-javadocpath","errorCode":null,"errorMessage":"Unable to parse: ${javadocPath}","messagePattern":"Unable to parse: (.+?)","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"core/processor/src/main/java/io/quarkus/annotation/processor/documentation/config/merger/JavadocMerger.java","lineNumber":40,"sourceCode":"        Map<String, JavadocElement> javadocElementsMap = new TreeMap<>();\n\n        for (Path buildOutputDirectory : buildOutputDirectories) {\n            Path javadocPath = buildOutputDirectory.resolve(Outputs.QUARKUS_CONFIG_DOC_JAVADOC);\n            if (!Files.isReadable(javadocPath)) {\n                continue;\n            }\n\n            try (InputStream javadocIs = Files.newInputStream(javadocPath)) {\n                JavadocElements javadocElements = JacksonMappers.yamlObjectReader().forType(JavadocElements.class)\n                        .readValue(javadocIs);\n\n                if (javadocElements.elements() == null || javadocElements.elements().isEmpty()) {\n                    continue;\n                }\n\n                javadocElementsMap.putAll(javadocElements.elements());\n            } catch (IOException e) {\n                throw new IllegalStateException(\"Unable to parse: \" + javadocPath, e);\n            }\n        }\n\n        return new JavadocRepository(javadocElementsMap);\n    }\n}\n","sourceCodeStart":22,"sourceCodeEnd":47,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/core/processor/src/main/java/io/quarkus/annotation/processor/documentation/config/merger/JavadocMerger.java#L22-L47","documentation":"JavadocMerger.mergeJavadocElements reads serialized javadoc-elements JSON files and deserializes them into a JavadocRepository. When reading one of these files fails with an IOException, it is wrapped in an IllegalStateException identifying the javadoc path.","triggerScenarios":"A javadoc-elements file in a dependency JAR or generated directory is corrupted, truncated, empty-but-present, unreadable, or written by an incompatible processor version; the merger's ObjectMapper throws IOException on read.","commonSituations":"Mixed Quarkus versions on the annotation processor classpath (old serialized model read by newer code); partially-cached build outputs in target/; corrupted artifact in the local Maven repository.","solutions":["Clean rebuild (mvn clean install) to regenerate javadoc-elements files","Delete the suspicious dependency from the local repository (~/.m2) and re-resolve it","Align all Quarkus extension/processor versions to the same release","Check file permissions and JAR integrity for the reported path"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"if (Files.notExists(javadocPath) || Files.size(javadocPath) == 0) {\n    continue; // skip missing/empty javadoc-elements files\n}","typeGuard":null,"tryCatchPattern":"try {\n    return merger.mergeJavadocElements(paths);\n} catch (IllegalStateException e) {\n    if (e.getMessage() != null && e.getMessage().startsWith(\"Unable to parse:\")) {\n        log.warn(\"Corrupt javadoc file \" + e.getMessage() + \"; run mvn clean install\");\n        throw e;\n    }\n    throw e;\n}","preventionTips":["Keep Quarkus processor and extension versions aligned","Run clean builds after upgrading Quarkus","Verify JAR integrity if builds fail after cache restores","Avoid concurrent builds sharing the same target/ directory"],"tags":["annotation-processor","javadoc","io","parsing"],"backgroundTag":"file-read-failed","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}