{"record":{"id":"d12824e3a7144abe","repo":"apache/maven","slug":"extension-with-illegal-version-in-file-extension","errorCode":null,"errorMessage":"Extension with illegal version in file ${extensionFile}: ${ga} defined on lines ${lineNumbers}","messagePattern":"Extension with illegal version in file (.+?): (.+?) defined on lines (.+?)","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/BaseParser.java","lineNumber":557,"sourceCode":"            String ga = coreExtension.getGroupId() + \":\" + coreExtension.getArtifactId();\n            InputLocation location = coreExtension.getLocation(\"\");\n            gasLocations.computeIfAbsent(ga, k -> new ArrayList<>()).add(location);\n            // TODO: metaversions could be extensible enum with these two values out of the box\n            if (\"LATEST\".equals(coreExtension.getVersion()) || \"RELEASE\".equals(coreExtension.getVersion())) {\n                metaVersionLocations.computeIfAbsent(ga, k -> new ArrayList<>()).add(location);\n            }\n        }\n        if (gasLocations.values().stream().anyMatch(l -> l.size() > 1)) {\n            throw new IllegalStateException(\"Extension conflicts in file \" + extensionFile + \": \"\n                    + gasLocations.entrySet().stream()\n                            .map(e -> e.getKey() + \" defined on lines \"\n                                    + e.getValue().stream()\n                                            .map(l -> String.valueOf(l.getLineNumber()))\n                                            .collect(Collectors.joining(\", \")))\n                            .collect(Collectors.joining(\"; \")));\n        }\n        if (!allowMetaVersions && !metaVersionLocations.isEmpty()) {\n            throw new IllegalStateException(\"Extension with illegal version in file \" + extensionFile + \": \"\n                    + metaVersionLocations.entrySet().stream()\n                            .map(e -> e.getKey() + \" defined on lines \"\n                                    + e.getValue().stream()\n                                            .map(l -> String.valueOf(l.getLineNumber()))\n                                            .collect(Collectors.joining(\", \")))\n                            .collect(Collectors.joining(\"; \")));\n        }\n        return coreExtensions;\n    }\n\n    @Nullable\n    protected CIInfo detectCI(LocalContext context) {\n        List<CIInfo> detected = CIDetectorHelper.detectCI();\n        if (detected.isEmpty()) {\n            return null;\n        } else if (detected.size() > 1) {\n            // warn\n            context.parserRequest","sourceCodeStart":539,"sourceCodeEnd":575,"githubUrl":"https://github.com/apache/maven/blob/e4093d4e120eac99d6bdce5ba67cace2f3085c97/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/BaseParser.java#L539-L575","documentation":"Error \"Extension with illegal version in file ${extensionFile}: ${ga} defined on lines ${lineNumbers}\" thrown in apache/maven.","triggerScenarios":"Thrown at impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/BaseParser.java:557 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e4093d4e120eac99d6bdce5ba67cace2f3085c97","analyzedAt":"2026-08-21T22:58:24.034Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}