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)

Reply via email to