I think the problem is somehow related to
  val DB_ROWTYPE = new RowTypeInfo(
    Seq(BasicTypeInfo.INT_TYPE_INFO),
    Seq("id"))

You have only one filed, I think Seq("id") should be removed.

However this is a bug IMHO, this kind of error should be checked with and
handler with a proper error.

On Tue, Jun 21, 2016 at 11:49 AM, Martin Scholl <m...@funkpopes.org> wrote:

> Hello everyone,
>
>
> JDBCInputFormat of flink 1.1-SNAPSHOT fails with an NPE in
> Row.productArity:
>
> %% snip %%
> java.io.IOException: Couldn't access resultSet
>         at
> org.apache.flink.api.java.io.jdbc.JDBCInputFormat.nextRecord(JDBCInputFormat.java:288)
>         at
> org.apache.flink.api.java.io.jdbc.JDBCInputFormat.nextRecord(JDBCInputFormat.java:98)
>         at
> org.apache.flink.runtime.operators.DataSourceTask.invoke(DataSourceTask.java:162)
>         at org.apache.flink.runtime.taskmanager.Task.run(Task.java:588)
>         at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.NullPointerException
>         at org.apache.flink.api.table.Row.productArity(Row.scala:28)
>         at
> org.apache.flink.api.java.io.jdbc.JDBCInputFormat.nextRecord(JDBCInputFormat.java:279)
>         ... 4 more
> %% snip %%
>
> Find the example code triggering this attached to this email.
>
> The reason, I believe, is the way through which Flink creates Row
> instances through Kryo. As Row expects the number of fields to allocate as
> a parameter, which Kryo does not provide, the ‘fields’ member of Row ends
> up being null. As I’m not a reflection, etc. expert, I rather leave a true
> analysis to more knowledgable programmers.
>
> Part of the attached example is a not very elegant workaround though a
> custom type and a cast (see jdbcNoIssue).
>
> Am I doing something wrong as to the example code, or shall I open a JIRA
> ticket?
>
>
> Thank you in advance,
> Martin
>
>
>
>
>

Reply via email to