flink-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Scholl ...@funkpopes.org>
Subject NPE in JDBCInputFormat
Date Tue, 21 Jun 2016 09:49:14 GMT
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,

View raw message