{"record":{"id":"870730d6d52d5c6b","repo":"apache/beam","slug":"name-cannot-be-empty","errorCode":null,"errorMessage":"name + \" cannot be empty\"","messagePattern":"name \\+ \" cannot be empty\"","errorType":"validation","errorClass":"java.lang.IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake/SnowflakeReadSchemaTransformProvider.java","lineNumber":247,"sourceCode":"      if (!tablePresent && !queryPresent) {\n        throw new IllegalArgumentException(\"Either table or query must be specified.\");\n      }\n\n      if (tablePresent && queryPresent) {\n        throw new IllegalArgumentException(\"table and query are mutually exclusive.\");\n      }\n\n      if (!getStagingBucketName().endsWith(\"/\")) {\n        throw new IllegalArgumentException(\"stagingBucketName must end with '/'\");\n      }\n\n      // Validate JSON schema early.\n      JsonUtils.beamSchemaFromJsonSchema(getSchema());\n    }\n\n    private static void requireNonEmpty(String value, String name) {\n      if (value == null || value.isEmpty()) {\n        throw new IllegalArgumentException(name + \" cannot be empty\");\n      }\n    }\n\n    @AutoValue.Builder\n    public abstract static class Builder {\n\n      public abstract Builder setServerName(String value);\n\n      public abstract Builder setUsername(@Nullable String value);\n\n      public abstract Builder setPassword(@Nullable String value);\n\n      public abstract Builder setOauthToken(@Nullable String value);\n\n      public abstract Builder setPrivateKey(@Nullable String value);\n\n      public abstract Builder setPrivateKeyPassphrase(@Nullable String value);\n","sourceCodeStart":229,"sourceCodeEnd":265,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/io/snowflake/src/main/java/org/apache/beam/sdk/io/snowflake/SnowflakeReadSchemaTransformProvider.java#L229-L265","documentation":"requireNonEmpty is a helper in SnowflakeReadSchemaTransformProvider that throws IllegalArgumentException('<name> cannot be empty') when a required string parameter (e.g. serverName, database, stagingBucketName, storageIntegration) is null or empty. validate() calls it for each mandatory field.","triggerScenarios":"Building a SnowflakeReadSchemaTransformConfiguration without setting a required field that validate() checks via requireNonEmpty — the exception's message names the field, e.g. 'serverName cannot be empty'.","commonSituations":"Partial YAML configs where optional-looking keys were omitted; environment-specific values not injected (null from placeholder substitution); copying an example and deleting fields believed unneeded.","solutions":["Set the field named in the message (e.g. setServerName(\"myaccount.us-east-1.snowflakecomputing.com\")).","Audit the configuration against the provider's documented required parameters.","Add your own preflight validation of the config object before expand() to fail fast with clear context.","Check templated/interpolated values actually resolve to non-empty strings."],"exampleFix":"// before\nSnowflakeReadSchemaTransformConfiguration.builder().setDatabase(\"DB\").setTable(\"T\").build();\n// after\nSnowflakeReadSchemaTransformConfiguration.builder()\n    .setServerName(\"acct.snowflakecomputing.com\").setDatabase(\"DB\").setSchema(\"PUBLIC\").setTable(\"T\").build();","handlingStrategy":"validation","validationCode":"java.util.List<String> missing = new java.util.ArrayList<>();\nif (serverName == null || serverName.isEmpty()) missing.add(\"serverName\");\nif (database == null || database.isEmpty()) missing.add(\"database\");\nif (!missing.isEmpty()) throw new IllegalArgumentException(\"Missing Snowflake fields: \" + missing);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Check every required field when loading configs from YAML/templates.","Assert placeholder substitution produced non-empty values.","Keep a checklist of required Snowflake parameters (serverName, database, stagingBucketName, storageIntegration, table/query)."],"tags":["java","snowflake","validation","configuration"],"backgroundTag":"empty-required-field","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-20T03:17:13.778Z"}