{"record":{"id":"4c40c7444fca729c","repo":"pinpoint-apm/pinpoint","slug":"basepackagenames-must-not-be-empty-4c40c7","errorCode":null,"errorMessage":"basePackageNames must not be empty","messagePattern":"basePackageNames must not be empty","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/instrument/matcher/DefaultMultiPackageBasedMatcher.java","lineNumber":42,"sourceCode":"import java.util.ArrayList;\nimport java.util.Collections;\nimport java.util.List;\n\n/**\n * @author jaehong.kim\n */\n@InterfaceStability.Unstable\npublic class DefaultMultiPackageBasedMatcher implements MultiPackageBasedMatcher {\n    private final List<String> basePackageNames;\n    private final MatcherOperand matcherOperand;\n\n    DefaultMultiPackageBasedMatcher(final List<String> basePackageNames) {\n        this(basePackageNames, null);\n    }\n\n    DefaultMultiPackageBasedMatcher(final List<String> basePackageNames, final MatcherOperand additional) {\n        if (CollectionUtils.isEmpty(basePackageNames)) {\n            throw new IllegalArgumentException(\"basePackageNames must not be empty\");\n        }\n\n        final List<String> buildBasePackageName = buildBasePackageNameList(basePackageNames);\n        final MatcherOperand operand = joinOr(buildBasePackageName);\n        if (operand == null) {\n            throw new IllegalStateException(\"operand is null\");\n        }\n        this.matcherOperand = addOr(operand, additional);\n\n        this.basePackageNames = Collections.unmodifiableList(buildBasePackageName);\n    }\n\n    private MatcherOperand addOr(MatcherOperand operand, MatcherOperand additional) {\n        if (additional == null) {\n            return operand;\n        }\n        // (package OR ...) AND additional\n        operand = operand.and(additional);","sourceCodeStart":24,"sourceCodeEnd":60,"githubUrl":"https://github.com/pinpoint-apm/pinpoint/blob/744c3d3075e595656abb1ae331ad2c0e4c9eb996/agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/instrument/matcher/DefaultMultiPackageBasedMatcher.java#L24-L60","documentation":"Constructor guard in DefaultMultiPackageBasedMatcher: the basePackageNames list supplied by the plugin is null or empty, so a package-based matcher cannot be constructed. The input at fault is the caller's package name collection.","triggerScenarios":"Thrown at agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/instrument/matcher/DefaultMultiPackageBasedMatcher.java:42 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Provide at least one non-empty package name when creating the matcher","Filter empty lists before calling newDefaultMultiPackageBasedMatcher","Fix plugin config (profiler configuration package patterns) that resolves to nothing"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"744c3d3075e595656abb1ae331ad2c0e4c9eb996","analyzedAt":"2026-09-07T18:48:45.289Z","contentChangedAt":"2026-09-07T18:48:45.289Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}