Xikui Wang created ASTERIXDB-1421:
-------------------------------------

             Summary: Not-null attribute inserting problem.
                 Key: ASTERIXDB-1421
                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1421
             Project: Apache AsterixDB
          Issue Type: Bug
            Reporter: Xikui Wang
            Priority: Minor


When constructing record using data output, if assigning not-null 
(non-optional) attribute null value(through code manipulating data output), for 
other data type other than string, the record will not be stored to db. For 
string type, and derived type, the record will be stored, and will cause 
problem when trying to read record.

For the string case, UTF8Util will print the null value as \u0000, however, 
when there are some non-null attributes result, it will cause exception at L60 
UTF8StringUtil.java 

For the derived data type case, the read record will cause exception at 
{quote}
Caused by: java.lang.IllegalStateException: java.lang.IndexOutOfBoundsException
        at 
org.apache.asterix.om.pointables.ARecordVisitablePointable.set(ARecordVisitablePointable.java:266)
        at 
org.apache.asterix.dataflow.data.nontagged.printers.adm.ARecordPrinterFactory$1.print(ARecordPrinterFactory.java:65)
        at 
org.apache.hyracks.algebricks.runtime.writers.PrinterBasedWriterFactory$1.printTuple(PrinterBasedWriterFactory.java:66)
        at 
org.apache.hyracks.algebricks.runtime.serializer.ResultSerializerFactoryProvider$1$1.appendTuple(ResultSerializerFactoryProvider.java:64)
        at 
org.apache.hyracks.dataflow.std.result.ResultWriterOperatorDescriptor$1.nextFrame(ResultWriterOperatorDescriptor.java:101)
        at 
org.apache.hyracks.dataflow.common.comm.io.AbstractFrameAppender.write(AbstractFrameAppender.java:93)
        at 
org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.flushAndReset(AbstractOneInputOneOutputOneFramePushRuntime.java:63)
        at 
org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.flushIfNotFailed(AbstractOneInputOneOutputOneFramePushRuntime.java:69)
        at 
org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.close(AbstractOneInputOneOutputOneFramePushRuntime.java:55)
        at 
org.apache.hyracks.algebricks.runtime.operators.std.StreamLimitRuntimeFactory$1.close(StreamLimitRuntimeFactory.java:136)
        at 
org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputOneOutputOneFramePushRuntime.close(AbstractOneInputOneOutputOneFramePushRuntime.java:57)
        at 
org.apache.hyracks.algebricks.runtime.operators.meta.AlgebricksMetaOperatorDescriptor$2.close(AlgebricksMetaOperatorDescriptor.java:153)
        at org.apache.hyracks.control.nc.Task.pushFrames(Task.java:356)
        ... 4 more
Caused by: java.lang.IndexOutOfBoundsException
        at 
org.apache.hyracks.data.std.util.ByteArrayAccessibleOutputStream.write(ByteArrayAccessibleOutputStream.java:73)
        at java.io.DataOutputStream.write(DataOutputStream.java:107)
        at 
org.apache.asterix.om.pointables.ARecordVisitablePointable.set(ARecordVisitablePointable.java:225)
        ... 16 more
{quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to