Oleg Zhukov created FLINK-11071:
-----------------------------------
Summary: Dynamic proxy classes cannot be resolved when
deserializing job graph
Key: FLINK-11071
URL: https://issues.apache.org/jira/browse/FLINK-11071
Project: Flink
Issue Type: Bug
Components: Core
Affects Versions: 1.6.2
Reporter: Oleg Zhukov
Attachments: SocketWindowWordCount.java
It turns impossible to use Java dynamic proxy objects in the job definition
(for example, as a MapFunction implementation).
During deserialization of the job graph, the default implementation of
ObjectInputStream.resolveProxyClass(..) is used, which is not using the custom
class loader (to look into the submitted jar) and therefore throws
ClassNotFoundException.
Looks like in order to address this,
InstantiationUtil.ClassLoaderObjectInputStream needs to provide custom
implementation of resolveProxyClass(..) method as well (in addition to
resolveClass(..)).
In order to reproduce the issue, run the attached SocketWindowWordCount Flink
app. It's a slight variation of the canonical [SocketWindowWordCount
example|https://ci.apache.org/projects/flink/flink-docs-master/tutorials/local_setup.html]
with a dynamic proxy implementation of the flat map transformation.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)