You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Kurt Young (Jira)" <ji...@apache.org> on 2020/04/16 05:13:00 UTC

[jira] [Commented] (FLINK-17171) Blink planner fails to compile Table program with POJO source

    [ https://issues.apache.org/jira/browse/FLINK-17171?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17084544#comment-17084544 ] 

Kurt Young commented on FLINK-17171:
------------------------------------

Similar with FLINK-16662?

> Blink planner fails to compile Table program with POJO source
> -------------------------------------------------------------
>
>                 Key: FLINK-17171
>                 URL: https://issues.apache.org/jira/browse/FLINK-17171
>             Project: Flink
>          Issue Type: Bug
>          Components: Table SQL / Planner, Table SQL / Runtime
>    Affects Versions: 1.10.0
>            Reporter: Nico Kruber
>            Priority: Blocker
>         Attachments: error.log
>
>
> It seems as if FLINK-13993 made the Table API (Blink planner) unusable for POJO sources where the POJO class is in user code.
> For https://github.com/ververica/lab-sql-vs-datastream/blob/master/src/main/java/com/ververica/LateralTableJoin.java I get the following Exception when I run it on a Flink 1.10.0 cluster (full version attached):
> {code}
> 2020-04-15 17:19:15,561 ERROR org.apache.flink.runtime.webmonitor.handlers.JarRunHandler    - Unhandled exception.
> org.apache.flink.util.FlinkRuntimeException: org.apache.flink.api.common.InvalidProgramException: Table program cannot be compiled. This is a bug. Please file an issue.
> ...
> Caused by: org.codehaus.commons.compiler.CompileException: Line 28, Column 175: Cannot determine simple type name "com"
> ...
> 	at org.apache.flink.table.runtime.generated.CompileUtils.doCompile(CompileUtils.java:78)
> {code}
> I enabled debug logs and this is what it is trying to compile:
> {code}
>         @Override
>         public void processElement(org.apache.flink.streaming.runtime.streamrecord.StreamRecord element) throws Exception {
>           org.apache.flink.table.dataformat.BaseRow in1 = (org.apache.flink.table.dataformat.BaseRow) (org.apache.flink.table.dataformat.BaseRow) converter$15.toInternal((com.ververica.tables.FactTable.Fact) element.getValue());
> ...
> {code}
> I use a standalone cluster and submit via web UI and also verified that my jar file does not contain anything else but its compiled classes.
> This code is working fine inside the IDE and was also working with Flink 1.10 and VVP 2.0 which did not use a dedicated class loader for user code.
> My guess is that the (generated) code does not have access to {{FactTable.Fact}} and the Janino compiler does not produce the right error message seeing "com" as a primitive type instead.
> FLINK-7490 and FLINK-9220 seem related but too old (legacy planner).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)