Xikui Wang has uploaded a new change for review. https://asterix-gerrit.ics.uci.edu/1695
Change subject: Fix NULL field value handing in Java UDF ...................................................................... Fix NULL field value handing in Java UDF Add NULL value support in Java UDF. This can avoid NPE when there is a NULL field in a record. Change-Id: Icf110b2f5b3658847967f5ee7163fb2e47713813 --- M asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/JTypeObjectFactory.java M asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectAccessors.java 2 files changed, 18 insertions(+), 0 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/95/1695/1 diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/JTypeObjectFactory.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/JTypeObjectFactory.java index e2ed092..6e35d79 100644 --- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/JTypeObjectFactory.java +++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/JTypeObjectFactory.java @@ -19,6 +19,7 @@ package org.apache.asterix.external.library; import org.apache.asterix.external.api.IJObject; +import org.apache.asterix.external.library.java.JObjects; import org.apache.asterix.external.library.java.JObjects.JBoolean; import org.apache.asterix.external.library.java.JObjects.JCircle; import org.apache.asterix.external.library.java.JObjects.JDate; @@ -45,6 +46,7 @@ import org.apache.asterix.om.types.AUnorderedListType; import org.apache.asterix.om.types.IAType; import org.apache.asterix.om.util.container.IObjectFactory; + public class JTypeObjectFactory implements IObjectFactory<IJObject, IAType> { @@ -108,6 +110,9 @@ case INT64: retValue = new JLong(0); break; + case NULL: + retValue = JObjects.JNull.INSTANCE; + break; case ORDEREDLIST: AOrderedListType ot = (AOrderedListType) type; IAType orderedItemType = ot.getItemType(); diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectAccessors.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectAccessors.java index f8755b4..5122efb 100644 --- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectAccessors.java +++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectAccessors.java @@ -140,6 +140,9 @@ case DURATION: accessor = new JDurationAccessor(); break; + case NULL: + accessor = new JNullAccessor(); + break; default: break; } @@ -188,6 +191,16 @@ return jObject; } } + + public static class JNullAccessor implements IJObjectAccessor { + + @Override + public IJObject access(IVisitablePointable pointable, IObjectPool<IJObject, IAType> objPool) + throws HyracksDataException { + IJObject jObject = objPool.allocate(BuiltinType.ANULL); + return jObject; + } + } public static class JInt64Accessor implements IJObjectAccessor { -- To view, visit https://asterix-gerrit.ics.uci.edu/1695 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Icf110b2f5b3658847967f5ee7163fb2e47713813 Gerrit-PatchSet: 1 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Xikui Wang <xkk...@gmail.com>