{"record":{"id":"e46ddcdaa7f47ba2","repo":"apache/maven","slug":"unsupported-class-loading-strategy-classloadings","errorCode":null,"errorMessage":"Unsupported class-loading strategy '{classLoadingStrategy}'. Supported values are: parent-first, plugin and self-first","messagePattern":"Unsupported class-loading strategy '(.+?)'\\. Supported values are: parent-first, plugin and self-first","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"impl/maven-cli/src/main/java/org/apache/maven/cling/extensions/BootstrapCoreExtensionManager.java","lineNumber":190,"sourceCode":"\n        return Collections.unmodifiableList(extensions);\n    }\n\n    private CoreExtensionEntry createExtension(CoreExtension extension, List<Artifact> artifacts) throws Exception {\n        String realmId = \"coreExtension>\" + extension.getGroupId() + \":\" + extension.getArtifactId() + \":\"\n                + extension.getVersion();\n        final ClassRealm realm = classWorld.newRealm(realmId, null);\n        Set<String> providedArtifacts = Collections.emptySet();\n        String classLoadingStrategy = extension.getClassLoadingStrategy();\n        if (STRATEGY_PARENT_FIRST.equals(classLoadingStrategy)) {\n            realm.importFrom(parentRealm, \"\");\n        } else if (STRATEGY_PLUGIN.equals(classLoadingStrategy)) {\n            coreExports.getExportedPackages().forEach((p, cl) -> realm.importFrom(cl, p));\n            providedArtifacts = coreExports.getExportedArtifacts();\n        } else if (STRATEGY_SELF_FIRST.equals(classLoadingStrategy)) {\n            realm.setParentRealm(parentRealm);\n        } else {\n            throw new IllegalArgumentException(\"Unsupported class-loading strategy '\"\n                    + classLoadingStrategy + \"'. Supported values are: \" + STRATEGY_PARENT_FIRST\n                    + \", \" + STRATEGY_PLUGIN + \" and \" + STRATEGY_SELF_FIRST);\n        }\n        log.debug(\"Populating class realm {}\", realm.getId());\n        for (Artifact artifact : artifacts) {\n            String id = artifact.getGroupId() + \":\" + artifact.getArtifactId();\n            if (providedArtifacts.contains(id)) {\n                log.debug(\"  Excluded {}\", id);\n            } else {\n                Path file = artifact.getPath();\n                log.debug(\"  Included {} located at {}\", id, file);\n                realm.addURL(file.toUri().toURL());\n            }\n        }\n        return CoreExtensionEntry.discoverFrom(\n                realm,\n                Collections.singleton(artifacts.get(0).getPath().toFile()),\n                extension.getGroupId() + \":\" + extension.getArtifactId(),","sourceCodeStart":172,"sourceCodeEnd":208,"githubUrl":"https://github.com/apache/maven/blob/e4093d4e120eac99d6bdce5ba67cace2f3085c97/impl/maven-cli/src/main/java/org/apache/maven/cling/extensions/BootstrapCoreExtensionManager.java#L172-L208","documentation":"Error \"Unsupported class-loading strategy '{classLoadingStrategy}'. Supported values are: parent-first, plugin and self-first\" thrown in apache/maven.","triggerScenarios":"Thrown at impl/maven-cli/src/main/java/org/apache/maven/cling/extensions/BootstrapCoreExtensionManager.java:190 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-22T04:17:13.399Z"}