{"record":{"id":"faf537fcb531d8bd","repo":"apache/seatunnel","slug":"please-configure-database-not-allow-null-databa","errorCode":null,"errorMessage":"Please configure `database`, not allow null database in config.","messagePattern":"Please configure `database`, not allow null database in config\\.","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/config/DorisTableConfig.java","lineNumber":123,"sourceCode":"            tableList = Collections.singletonList(tableProperty);\n        }\n\n        if (tableList.size() > 1) {\n            List<String> tableIds =\n                    tableList.stream()\n                            .map(DorisTableConfig::getTableIdentifier)\n                            .collect(Collectors.toList());\n            Set<String> tableIdSet = new HashSet<>(tableIds);\n            if (tableIdSet.size() < tableList.size() - 1) {\n                throw new IllegalArgumentException(\n                        \"Please configure unique `database`.`table`, not allow null/duplicate: \"\n                                + tableIds);\n            }\n        }\n\n        for (DorisTableConfig dorisTableConfig : tableList) {\n            if (StringUtils.isBlank(dorisTableConfig.getDatabase())) {\n                throw new IllegalArgumentException(\n                        \"Please configure `database`, not allow null database in config.\");\n            }\n            if (StringUtils.isBlank(dorisTableConfig.getTable())) {\n                throw new IllegalArgumentException(\n                        \"Please configure `table`, not allow null table in config.\");\n            }\n            if (dorisTableConfig.getBatchSize() <= 0) {\n                dorisTableConfig.setBatchSize(DORIS_BATCH_SIZE.defaultValue());\n            }\n            if (dorisTableConfig.getExecMemLimit() <= 0) {\n                dorisTableConfig.setExecMemLimit(DORIS_EXEC_MEM_LIMIT.defaultValue());\n            }\n            if (dorisTableConfig.getTabletSize() <= 0) {\n                dorisTableConfig.setTabletSize(DORIS_TABLET_SIZE.defaultValue());\n            }\n        }\n        return tableList;\n    }","sourceCodeStart":105,"sourceCodeEnd":141,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/config/DorisTableConfig.java#L105-L141","documentation":"DorisTableConfig.of requires every table configuration to have a non-blank `database` value; when getDatabase() is null/empty/whitespace it throws IllegalArgumentException. The Doris sink needs a fully qualified `database`.`table` target.","triggerScenarios":"Calling DorisTableConfig.of(...) with a table entry that omits `database` or sets it to \"\" or whitespace, e.g. only {table = \"t\"}.","commonSituations":"Whole-database sync configs where the user assumes database is inherited from another option but the table entry itself lacks it; typos like `databases` or nested key misplacement in the config file.","solutions":["Add a non-empty `database` field to each entry in the table list","If a single database applies to many tables, still ensure each entry (or the shared config the builder reads) carries the database name","Check config key spelling/casing (`database`) in your HOCON/YAML"],"exampleFix":"// before\ntable-list = [{table = \"orders\"}]\n// after\ntable-list = [{database = \"sales\", table = \"orders\"}]","handlingStrategy":"validation","validationCode":"if (StringUtils.isBlank(tableConfig.getString(\"database\"))) {\n    throw new IllegalArgumentException(\"Each table-list entry requires a non-blank 'database'\");\n}","typeGuard":null,"tryCatchPattern":"try {\n    DorisTableConfig.of(dorisConfig, options);\n} catch (IllegalArgumentException e) {\n    if (e.getMessage().contains(\"Please configure `database`\")) {\n        LOG.error(\"Add missing 'database' field to every table-list entry\");\n    }\n    throw e;\n}","preventionTips":["Always include both database and table in each table-list entry","Check key spelling and nesting in HOCON/YAML configs","Run config validation in a pre-submit lint step"],"tags":["config-validation","doris","missing-field"],"backgroundTag":"missing-required-config-field","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}