[ https://issues.apache.org/jira/browse/FLINK-4108?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15576491#comment-15576491 ]
ASF GitHub Bot commented on FLINK-4108: --------------------------------------- Github user fhueske commented on a diff in the pull request: https://github.com/apache/flink/pull/2619#discussion_r83502181 --- Diff: flink-scala/src/main/scala/org/apache/flink/api/scala/ExecutionEnvironment.scala --- @@ -110,7 +110,7 @@ class ExecutionEnvironment(javaEnv: JavaEnv) { */ @PublicEvolving def getRestartStrategy: RestartStrategyConfiguration = { - javaEnv.getRestartStrategy() + javaEnv.getRestartStrategy --- End diff -- Apparently this is not the case in this class. Similar method are also called without parentheses. So lets keep this change to have consistent code in this class. > NPE in Row.productArity > ----------------------- > > Key: FLINK-4108 > URL: https://issues.apache.org/jira/browse/FLINK-4108 > Project: Flink > Issue Type: Bug > Components: Batch Connectors and Input/Output Formats, Type > Serialization System > Affects Versions: 1.1.0 > Reporter: Martin Scholl > Assignee: Timo Walther > > [this is my first issue request here, please apologize if something is > missing] > JDBCInputFormat of flink 1.1-SNAPSHOT fails with an NPE in Row.productArity: > {quote} > 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 > {quote} > The code reproduce this can be found in this gist: > https://gist.github.com/zeitgeist/b91a60460661618ca4585e082895c616 > The reason for the NPE, 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 neither a reflection nor a Kryo expert, I rather leave a > true analysis to more knowledgable programmers. > Part of the aforementioned example is a not very elegant workaround though a > custom type and a cast (function {{jdbcNoIssue}} + custom Row type {{MyRow}}) > to serve as a further hint towards my theory. -- This message was sent by Atlassian JIRA (v6.3.4#6332)