From 24c1306bbb16843938d391e00b75aeae7061e31f Mon Sep 17 00:00:00 2001 From: emptyOVO Date: Sat, 7 Sep 2024 14:51:16 +0800 Subject: [PATCH] fix: add NP check --- .../sdk/transform/process/function/DecodeFunction.java | 10 +++++++--- .../sdk/transform/process/function/EncodeFunction.java | 10 +++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) 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) {