[
https://issues.apache.org/jira/browse/FLINK-7490?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16253580#comment-16253580
]
ASF GitHub Bot commented on FLINK-7490:
---------------------------------------
Github user twalthr commented on a diff in the pull request:
https://github.com/apache/flink/pull/5018#discussion_r151147760
--- Diff:
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/runtime/aggregate/DataSetAggFunction.scala
---
@@ -46,7 +46,7 @@ class DataSetAggFunction(
LOG.debug(s"Compiling AggregateHelper: $genAggregations.name \n\n " +
s"Code:\n$genAggregations.code")
val clazz = compile(
- getClass.getClassLoader,
+ getRuntimeContext.getUserCodeClassLoader,
--- End diff --
Couldn't we just use `Thread.currentThread().getContextClassLoader`
everywhere?
> UDF Agg throws Exception when flink-table is loaded with AppClassLoader
> -----------------------------------------------------------------------
>
> Key: FLINK-7490
> URL: https://issues.apache.org/jira/browse/FLINK-7490
> Project: Flink
> Issue Type: Bug
> Components: Table API & SQL
> Affects Versions: 1.3.1, 1.4.0
> Reporter: Miguel Rui Pereira Marques
> Assignee: Fabian Hueske
> Priority: Blocker
> Fix For: 1.4.0
>
>
> When a UDF aggregation for the Batch Table API is defined in the
> FlinkUserCodeClassLoader and the Table API itself is loaded in the
> AppClassLoader (the jar is included in the lib directory) this exception is
> triggered:
> {panel:title=Exception}
> java.lang.Exception: The user defined 'open()' method caused an exception:
> Table program cannot be compiled. This is a bug. Please file an issue.
> at org.apache.flink.runtime.operators.BatchTask.run(BatchTask.java:485)
> at
> org.apache.flink.runtime.operators.BatchTask.invoke(BatchTask.java:355)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:712)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: org.apache.flink.api.common.InvalidProgramException: Table program
> cannot be compiled. This is a bug. Please file an issue.
> at
> org.apache.flink.table.codegen.Compiler$class.compile(Compiler.scala:36)
> at
> org.apache.flink.table.runtime.aggregate.DataSetAggFunction.compile(DataSetAggFunction.scala:35)
> at
> org.apache.flink.table.runtime.aggregate.DataSetAggFunction.open(DataSetAggFunction.scala:49)
> at
> org.apache.flink.api.common.functions.util.FunctionUtils.openFunction(FunctionUtils.java:36)
> at org.apache.flink.runtime.operators.BatchTask.run(BatchTask.java:481)
> ... 3 more
> Caused by: org.codehaus.commons.compiler.CompileException: Line 5, Column 13:
> Cannot determine simple type name "org"
> at
> org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:11672)
> at
> org.codehaus.janino.UnitCompiler.getReferenceType(UnitCompiler.java:6416)
> at
> org.codehaus.janino.UnitCompiler.getReferenceType(UnitCompiler.java:6177)
> ...
> {panel}
> Upon inspecting the code I think this may be due to the usage of
> 'getClass.getClassLoader' instead of
> 'getRuntimeContext.getUserCodeClassLoader' as an argument 'compile' in the
> method 'open' of class
> org.apache.flink.table.runtime.aggregate.DataSetAggFunction.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)