Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-19797

NPE when we use decimal array as input of UDAF

    XMLWordPrintableJSON

Details

    Description

      Flink version: 1.11

       

      Flink throws NPE when we use decimal array as input of UDAF.
      Here is a simple example:

      select percentile(num, array[0.10, 0.50, 0.99]) from source
      

      And the exception is:

      Caused by: java.lang.NullPointerException: null
      	at org.apache.flink.table.data.util.DataFormatConverters$BigDecimalConverter.toExternalImpl(DataFormatConverters.java:680) ~[classes/:na]
      	at org.apache.flink.table.data.util.DataFormatConverters$BigDecimalConverter.toExternalImpl(DataFormatConverters.java:661) ~[classes/:na]
      	at org.apache.flink.table.data.util.DataFormatConverters.arrayDataToJavaArray(DataFormatConverters.java:1195) ~[classes/:na]
      	at org.apache.flink.table.data.util.DataFormatConverters.access$200(DataFormatConverters.java:104) ~[classes/:na]
      	at org.apache.flink.table.data.util.DataFormatConverters$ObjectArrayConverter.toExternalImpl(DataFormatConverters.java:1148) ~[classes/:na]
      	at org.apache.flink.table.data.util.DataFormatConverters$ObjectArrayConverter.toExternalImpl(DataFormatConverters.java:1095) ~[classes/:na]
      	at org.apache.flink.table.data.util.DataFormatConverters$DataFormatConverter.toExternal(DataFormatConverters.java:383) ~[classes/:na]
      	at NoGroupingAggregateWithoutKeys$25.processElement(Unknown Source) ~[na:na]
      	at org.apache.flink.streaming.runtime.tasks.OneInputStreamTask$StreamTaskNetworkOutput.emitRecord(OneInputStreamTask.java:161) ~[classes/:na]
      	at org.apache.flink.streaming.runtime.io.StreamTaskNetworkInput.processElement(StreamTaskNetworkInput.java:183) ~[classes/:na]
      	at org.apache.flink.streaming.runtime.io.StreamTaskNetworkInput.emitNext(StreamTaskNetworkInput.java:158) ~[classes/:na]
      	at org.apache.flink.streaming.runtime.io.StreamOneInputProcessor.processInput(StreamOneInputProcessor.java:67) ~[classes/:na]
      	at org.apache.flink.streaming.runtime.tasks.StreamTask.processInput(StreamTask.java:351) ~[classes/:na]
      	at org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.runMailboxStep(MailboxProcessor.java:191) ~[classes/:na]
      	at org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.runMailboxLoop(MailboxProcessor.java:181) ~[classes/:na]
      	at org.apache.flink.streaming.runtime.tasks.StreamTask.runMailboxLoop(StreamTask.java:565) ~[classes/:na]
      	at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:536) ~[classes/:na]
      	at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:721) ~[classes/:na]
      	at org.apache.flink.runtime.taskmanager.Task.run(Task.java:546) ~[classes/:na]
      	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_251]
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              FrankZou Dan Zou
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: