{"record":{"id":"e4d9ef70822044aa","repo":"pinpoint-apm/pinpoint","slug":"basepackagename-must-not-be-empty","errorCode":null,"errorMessage":"basePackageName must not be empty","messagePattern":"basePackageName 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/DefaultPackageBasedMatcher.java","lineNumber":40,"sourceCode":"\nimport java.util.Objects;\n\n/**\n * @author jaehong.kim\n */\n@InterfaceStability.Unstable\npublic class DefaultPackageBasedMatcher implements PackageBasedMatcher {\n    private final String basePackageName;\n    private final MatcherOperand matcherOperand;\n\n    DefaultPackageBasedMatcher(final String basePackageName) {\n        this(basePackageName, null);\n    }\n\n    DefaultPackageBasedMatcher(final String basePackageName, final MatcherOperand additional) {\n        Objects.requireNonNull(basePackageName, \"basePackageName\");\n        if (!StringUtils.hasText(basePackageName)) {\n            throw new IllegalArgumentException(\"basePackageName must not be empty\");\n        }\n        this.basePackageName = basePackageName;\n\n        MatcherOperand operand = new PackageInternalNameMatcherOperand(basePackageName);\n        if (additional != null) {\n            // package AND additional\n            operand = operand.and(additional);\n        }\n        this.matcherOperand = operand;\n    }\n\n    @Override\n    public String getBasePackageName() {\n        return this.basePackageName;\n    }\n\n    @Override\n    public MatcherOperand getMatcherOperand() {","sourceCodeStart":22,"sourceCodeEnd":58,"githubUrl":"https://github.com/pinpoint-apm/pinpoint/blob/744c3d3075e595656abb1ae331ad2c0e4c9eb996/agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/instrument/matcher/DefaultPackageBasedMatcher.java#L22-L58","documentation":"Constructor guard in DefaultPackageBasedMatcher: basePackageName passed the requireNonNull check but is blank/whitespace-only (StringUtils.hasText fails), so a single-package matcher cannot be built. The input at fault is the caller's package name string.","triggerScenarios":"Thrown at agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/instrument/matcher/DefaultPackageBasedMatcher.java:40 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass a non-blank package name such as 'com.example'","Trim and validate configuration strings before constructing the matcher","Check profiler plugin config for empty package patterns"],"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"}