{"record":{"id":"b8074f3adab33aee","repo":"testcontainers/testcontainers-java","slug":"database-name-cannot-be-null-or-empty","errorCode":null,"errorMessage":"Database name cannot be null or empty","messagePattern":"Database name cannot be null or empty","errorType":"validation","errorClass":"java.lang.IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"modules/oracle-free/src/main/java/org/testcontainers/oracle/OracleContainer.java","lineNumber":151,"sourceCode":"            throw new IllegalArgumentException(\"Username cannot be one of \" + ORACLE_SYSTEM_USERS);\n        }\n        this.username = username;\n        return self();\n    }\n\n    @Override\n    public OracleContainer withPassword(String password) {\n        if (StringUtils.isEmpty(password)) {\n            throw new IllegalArgumentException(\"Password cannot be null or empty\");\n        }\n        this.password = password;\n        return self();\n    }\n\n    @Override\n    public OracleContainer withDatabaseName(String databaseName) {\n        if (StringUtils.isEmpty(databaseName)) {\n            throw new IllegalArgumentException(\"Database name cannot be null or empty\");\n        }\n\n        if (DEFAULT_DATABASE_NAME.equals(databaseName.toLowerCase())) {\n            throw new IllegalArgumentException(\"Database name cannot be set to \" + DEFAULT_DATABASE_NAME);\n        }\n\n        this.databaseName = databaseName;\n        return self();\n    }\n\n    public OracleContainer usingSid() {\n        this.usingSid = true;\n        return self();\n    }\n\n    @Override\n    public OracleContainer withUrlParam(String paramName, String paramValue) {\n        throw new UnsupportedOperationException(\"The Oracle Database driver does not support this\");","sourceCodeStart":133,"sourceCodeEnd":169,"githubUrl":"https://github.com/testcontainers/testcontainers-java/blob/8e549514e3f01c57d70546fbb8599d138f3903e5/modules/oracle-free/src/main/java/org/testcontainers/oracle/OracleContainer.java#L133-L169","documentation":"Validation guard in OracleContainer.withDatabaseName: the supplied database name is null or empty (StringUtils.isEmpty), so IllegalArgumentException is thrown. Oracle Free containers require an explicit, non-empty database name for the pluggable database created at startup.","triggerScenarios":"Calling withDatabaseName(null), withDatabaseName(\"\"), or withDatabaseName(\" \").","commonSituations":"Database name wired from an unset env var or blank config property in CI pipelines.","solutions":["Pass a non-empty database name, e.g. withDatabaseName(\"appdb\").","Fix the config/env source so the value resolves to a real name.","Omit the call to keep the container's default database name."],"exampleFix":"// before\ncontainer.withDatabaseName(System.getProperty(\"db.name\")); // may be blank\n// after\nString db = System.getProperty(\"db.name\", \"appdb\");\ncontainer.withDatabaseName(db);","handlingStrategy":"validation","validationCode":"if (databaseName == null || databaseName.trim().isEmpty()) {\n    databaseName = \"appdb\"; // default before calling withDatabaseName\n}","typeGuard":null,"tryCatchPattern":"try {\n    container.withDatabaseName(databaseName);\n} catch (IllegalArgumentException e) {\n    container.withDatabaseName(\"appdb\");\n}","preventionTips":["Provide a fallback database name when config values may be blank.","Validate config at load time, not at container build time.","Omit withDatabaseName() when the default service name is acceptable."],"tags":["oracle","validation","database-name"],"backgroundTag":"empty-required-field","analyzedSha":"8e549514e3f01c57d70546fbb8599d138f3903e5","analyzedAt":"2026-09-12T14:56:41.227Z","contentChangedAt":"2026-09-12T14:56:41.227Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}