{"record":{"id":"8f7e6d66c5f9b578","repo":"testcontainers/testcontainers-java","slug":"password-cannot-be-null-or-empty-oraclecontainer","errorCode":null,"errorMessage":"Password cannot be null or empty","messagePattern":"Password cannot be null or empty","errorType":"validation","errorClass":"java.lang.IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"modules/oracle-xe/src/main/java/org/testcontainers/containers/OracleContainer.java","lineNumber":163,"sourceCode":"        return usingSid;\n    }\n\n    @Override\n    public OracleContainer withUsername(String username) {\n        if (StringUtils.isEmpty(username)) {\n            throw new IllegalArgumentException(\"Username cannot be null or empty\");\n        }\n        if (ORACLE_SYSTEM_USERS.contains(username.toLowerCase())) {\n            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    }","sourceCodeStart":145,"sourceCodeEnd":181,"githubUrl":"https://github.com/testcontainers/testcontainers-java/blob/8e549514e3f01c57d70546fbb8599d138f3903e5/modules/oracle-xe/src/main/java/org/testcontainers/containers/OracleContainer.java#L145-L181","documentation":"OracleContainer.withPassword() validates that a password was supplied. A null or empty password would make the container unusable for JDBC connections, so the library throws IllegalArgumentException immediately at configuration time.","triggerScenarios":"Calling container.withPassword(null) or withPassword(\"\") while building the OracleContainer.","commonSituations":"Password loaded from a missing env var/secret store; typos in config keys leaving the value empty; test fixtures that skip setting credentials.","solutions":["Pass a concrete non-empty password, e.g. withPassword(\"secret\")","Fix the credential source (env var, secret) so it returns a real value","Omit withPassword and rely on the container's default password if a custom one isn't needed"],"exampleFix":"// before\ncontainer.withPassword(System.getenv(\"DB_PASS\"));\n// after\nString pass = System.getenv(\"DB_PASS\");\nAssert.notNull(pass, \"DB_PASS must be set\");\ncontainer.withPassword(pass);","handlingStrategy":"validation","validationCode":"if (password == null || password.isEmpty()) throw new IllegalStateException(\"DB password missing\");\ncontainer.withPassword(password);","typeGuard":"boolean hasPassword(String p) { return p != null && !p.isEmpty(); }","tryCatchPattern":"try { container.withPassword(pass); } catch (IllegalArgumentException e) { throw new IllegalStateException(\"Configure DB_PASS before running tests\", e); }","preventionTips":["Load secrets in one place and fail fast when missing","Don't rely on env vars that may be unset in CI","Keep default credentials for local test containers"],"tags":["oracle","testcontainers","validation","credentials"],"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"}