[ 
https://issues.apache.org/jira/browse/DRILL-7677?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Niels Basjes updated DRILL-7677:
--------------------------------
    Comment: was deleted

(was: This seems a sensible fix, yet I expect side effects and I'm currently no 
able to verify the build locally.
{code:java}
diff --git 
exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/StringFunctionHelpers.java
 
exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/StringFunctionHelpers.java
index 02b053f..8b26104 100644
--- 
exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/StringFunctionHelpers.java
+++ 
exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/StringFunctionHelpers.java
@@ -184,6 +184,9 @@ public class StringFunctionHelpers {
    * Convert a NullableVarCharHolder to a String.
    */
   public static String getStringFromVarCharHolder(NullableVarCharHolder 
varCharHolder) {
+    if (varCharHolder == null || varCharHolder.isSet == 0 || 
varCharHolder.buffer == null) {
+      return null;
+    }
     return toStringFromUTF8(varCharHolder.start, varCharHolder.end, 
varCharHolder.buffer);
   }

{code})

> NPE in getStringFromVarCharHolder(NullableVarCharHolder) 
> ---------------------------------------------------------
>
>                 Key: DRILL-7677
>                 URL: https://issues.apache.org/jira/browse/DRILL-7677
>             Project: Apache Drill
>          Issue Type: Bug
>            Reporter: Niels Basjes
>            Priority: Major
>
> Assume you have a function ([like this 
> one|https://github.com/apache/drill/blob/master/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/UserAgentFunctions.java#L110])
>  that has
> {code:java}
> @Param
> NullableVarCharHolder input;
> {code}
> and in the {code:java}eval(){code} function you do
> {code:java}String inputString = 
> org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.getStringFromVarCharHolder(input);{code}
> When this function is called with the input actually being null the 'input' 
> parameter is an instance of NullableVarCharHolder where isSet is 0 and buffer 
> is null.
> The buffer being null causes an NPE in the call to 
> getStringFromVarCharHolder(NullableVarCharHolder)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to