{"record":{"id":"bdc62e6728aa3966","repo":"apache/seatunnel","slug":"common-illegal-argument-bdc62e","errorCode":"COMMON_ILLEGAL_ARGUMENT","errorMessage":"tinyint.min should >= TINYINT_MIN.defaultValue and <= TINYINT_MAX.defaultValue","messagePattern":"tinyint\\.min should >= TINYINT_MIN\\.defaultValue and <= TINYINT_MAX\\.defaultValue","errorType":"validation","errorClass":"FakeConnectorException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-fake/src/main/java/org/apache/seatunnel/connectors/seatunnel/fake/config/FakeConfig.java","lineNumber":227,"sourceCode":"        readonlyConfig.getOptional(BIGINT_TEMPLATE).ifPresent(builder::bigTemplate);\n        readonlyConfig.getOptional(FLOAT_TEMPLATE).ifPresent(builder::floatTemplate);\n        readonlyConfig.getOptional(DOUBLE_TEMPLATE).ifPresent(builder::doubleTemplate);\n        readonlyConfig.getOptional(DATE_YEAR_TEMPLATE).ifPresent(builder::dateYearTemplate);\n        readonlyConfig.getOptional(DATE_MONTH_TEMPLATE).ifPresent(builder::dateMonthTemplate);\n        readonlyConfig.getOptional(DATE_DAY_TEMPLATE).ifPresent(builder::dateDayTemplate);\n        readonlyConfig.getOptional(TIME_HOUR_TEMPLATE).ifPresent(builder::timeHourTemplate);\n        readonlyConfig.getOptional(TIME_MINUTE_TEMPLATE).ifPresent(builder::timeMinuteTemplate);\n        readonlyConfig.getOptional(TIME_SECOND_TEMPLATE).ifPresent(builder::timeSecondTemplate);\n        readonlyConfig.getOptional(AUTO_INCREMENT_ENABLED).ifPresent(builder::autoIncrementEnabled);\n        readonlyConfig.getOptional(AUTO_INCREMENT_START).ifPresent(builder::autoIncrementStart);\n\n        readonlyConfig\n                .getOptional(TINYINT_MIN)\n                .ifPresent(\n                        tinyintMin -> {\n                            if (tinyintMin < TINYINT_MIN.defaultValue()\n                                    || tinyintMin > TINYINT_MAX.defaultValue()) {\n                                throw new FakeConnectorException(\n                                        CommonErrorCodeDeprecated.ILLEGAL_ARGUMENT,\n                                        TINYINT_MIN.key()\n                                                + \" should >= \"\n                                                + TINYINT_MIN.defaultValue()\n                                                + \" and <= \"\n                                                + TINYINT_MAX.defaultValue());\n                            }\n                            builder.tinyintMin(tinyintMin);\n                        });\n\n        readonlyConfig\n                .getOptional(TINYINT_MAX)\n                .ifPresent(\n                        tinyintMax -> {\n                            if (tinyintMax < TINYINT_MIN.defaultValue()\n                                    || tinyintMax > TINYINT_MAX.defaultValue()) {\n                                throw new FakeConnectorException(\n                                        CommonErrorCodeDeprecated.ILLEGAL_ARGUMENT,","sourceCodeStart":209,"sourceCodeEnd":245,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-fake/src/main/java/org/apache/seatunnel/connectors/seatunnel/fake/config/FakeConfig.java#L209-L245","documentation":"FakeConfig.buildWithConfig validates that the user-provided fake.tinyint.min value lies within the legal TinyINT range (between the built-in TINYINT_MIN and TINYINT_MAX defaults, i.e. [-128, 127]). If tinyint.min is below -128 or above 127, a FakeConnectorException with CommonErrorCodeDeprecated.ILLEGAL_ARGUMENT is thrown.","triggerScenarios":"Setting the connector-fake option fake.tinyint.min to a value < -128 or > 127 in the source configuration and running a job with the Fake source.","commonSituations":"Copy-pasting an int-range value (e.g. -100000 or 99999) into the tinyint.min option; confusing tinyint range with smallint/int ranges when generating random data.","solutions":["Set fake.tinyint.min to a value between -128 and 127 (the TinyINT range).","If you need a wider range, change the generated column type to SMALLINT/INT and use the corresponding min/max options.","Remove the fake.tinyint.min option entirely to use the default range."],"exampleFix":"// before\ntinyint.min = -1000\n// after\ntinyint.min = -128","handlingStrategy":"validation","validationCode":"// Validate before job submission\nint tinyintMin = Integer.parseInt(config.get(\"tinyint.min\"));\nif (tinyintMin < -128 || tinyintMin > 127) {\n    throw new IllegalArgumentException(\"tinyint.min must be in [-128, 127], got \" + tinyintMin);\n}","typeGuard":null,"tryCatchPattern":"try {\n    FakeConfig.buildWithConfig(readonlyConfig);\n} catch (FakeConnectorException e) {\n    if (CommonErrorCodeDeprecated.ILLEGAL_ARGUMENT.equals(e.getSeaTunnelErrorCode())) {\n        log.error(\"Fix fake range config: \" + e.getMessage());\n    }\n    throw e;\n}","preventionTips":["Remember Java numeric ranges: TinyINT [-128,127], SmallINT [-32768,32767], INT [-2147483648,2147483647].","Match the range option to the actual generated column type.","Validate fake.* range options in your config pipeline before submitting jobs."],"tags":["fake-connector","config-validation","range-check"],"backgroundTag":"value-out-of-range","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}