{"record":{"id":"17e2b7ebdf132492","repo":"alibaba/DataX","slug":"dx-filter-paras-must-be-3","errorCode":null,"errorMessage":"dx_filter paras must be 3","messagePattern":"dx_filter paras must be 3","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"core/src/main/java/com/alibaba/datax/core/transport/transformer/FilterTransformer.java","lineNumber":28,"sourceCode":"/**\n * no comments.\n * Created by liqiang on 16/3/4.\n */\npublic class FilterTransformer extends Transformer {\n    public FilterTransformer() {\n        setTransformerName(\"dx_filter\");\n    }\n\n    @Override\n    public Record evaluate(Record record, Object... paras) {\n\n        int columnIndex;\n        String code;\n        String value;\n\n        try {\n            if (paras.length != 3) {\n                throw new RuntimeException(\"dx_filter paras must be 3\");\n            }\n\n            columnIndex = (Integer) paras[0];\n            code = (String) paras[1];\n            value = (String) paras[2];\n\n            if (StringUtils.isEmpty(value)) {\n                throw new RuntimeException(\"dx_filter para 2 can't be null\");\n            }\n        } catch (Exception e) {\n            throw DataXException.asDataXException(TransformerErrorCode.TRANSFORMER_ILLEGAL_PARAMETER, \"paras:\" + Arrays.asList(paras).toString() + \" => \" + e.getMessage());\n        }\n\n\n        Column column = record.getColumn(columnIndex);\n\n        try {\n","sourceCodeStart":10,"sourceCodeEnd":46,"githubUrl":"https://github.com/alibaba/DataX/blob/80ec23d5c5328eb90ca364d2749e92dfaf44541e/core/src/main/java/com/alibaba/datax/core/transport/transformer/FilterTransformer.java#L10-L46","documentation":"The dx_filter transformer requires exactly 3 parameters; a different count throws RuntimeException('dx_filter paras must be 3'), rewrapped as TRANSFORMER_ILLEGAL_PARAMETER. Expected paras: columnIndex (Integer), comparison code (like/>/</=/==/!=/>=/<=), and the comparison value string.","triggerScenarios":"Declaring {\"name\":\"dx_filter\",\"parameter\":[2]} or [2,\">\",100,extra] in the job transformer block — anything with parameter-array length != 3.","commonSituations":"Omitting the value to 'just filter on the operator'; adding a fourth param by copy-paste from dx_digest examples.","solutions":["Provide exactly 3 entries: column index, operator string, comparison value (as string).","Cross-check against DataX transformer documentation examples before running."],"exampleFix":"// before\n\"transformer\": [{\"name\": \"dx_filter\", \"parameter\": [2]}]\n\n// after\n\"transformer\": [{\"name\": \"dx_filter\", \"parameter\": [2, \">\", \"100\"]}]","handlingStrategy":"validation","validationCode":"if (!(paras.length == 3)) throw new IllegalArgumentException(\"dx_filter needs exactly [index, code, value]\");","typeGuard":null,"tryCatchPattern":"catch (DataXException e) when TRANSFORMER_ILLEGAL_PARAMETER: log paras and fail fast; config error, do not retry.","preventionTips":["Template dx_filter entries as [index, operator, value].","Lint transformer blocks before job submission."],"tags":["datax","transformer","dx-filter","config"],"backgroundTag":null,"analyzedSha":"80ec23d5c5328eb90ca364d2749e92dfaf44541e","analyzedAt":"2026-08-14T15:33:51.187Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}