diff --git a/inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/function/DecodeFunction.java b/inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/function/DecodeFunction.java index ad3ab2e0a2..9b1d25817c 100644 --- a/inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/function/DecodeFunction.java +++ b/inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/function/DecodeFunction.java @@ -44,9 +44,13 @@ public DecodeFunction(Function expr) { @Override public Object parse(SourceData sourceData, int rowIndex, Context context) { - String binaryString = OperatorTools.parseString(binaryParser.parse(sourceData, rowIndex, context)); - String characterSetValue = - OperatorTools.parseString(characterSetParser.parse(sourceData, rowIndex, context)).toUpperCase(); + Object binaryObj = binaryParser.parse(sourceData, rowIndex, context); + Object characterObj = characterSetParser.parse(sourceData, rowIndex, context); + if (binaryObj == null || characterObj == null) { + return null; + } + String binaryString = OperatorTools.parseString(binaryObj); + String characterSetValue = OperatorTools.parseString(characterObj).toUpperCase(); return decode(binaryString, characterSetValue); } diff --git a/inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/function/EncodeFunction.java b/inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/function/EncodeFunction.java index 021f595079..ff6a8072ea 100644 --- a/inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/function/EncodeFunction.java +++ b/inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/function/EncodeFunction.java @@ -44,9 +44,13 @@ public EncodeFunction(Function expr) { @Override public Object parse(SourceData sourceData, int rowIndex, Context context) { - String stringValue = OperatorTools.parseString(stringParser.parse(sourceData, rowIndex, context)); - String characterSetValue = - OperatorTools.parseString(characterSetParser.parse(sourceData, rowIndex, context)).toUpperCase(); + Object stringObj = stringParser.parse(sourceData, rowIndex, context); + Object characterObj = characterSetParser.parse(sourceData, rowIndex, context); + if (stringObj == null || characterObj == null) { + return null; + } + String stringValue = OperatorTools.parseString(stringObj); + String characterSetValue = OperatorTools.parseString(characterObj).toUpperCase(); byte[] encodeBytes = encode(stringValue, characterSetValue); StringBuilder res = new StringBuilder(); if (encodeBytes != null) {