The easiest solution for all non-trivial issues like this is to start the application locally in a local executor, so you can debug in your IDE.
Additionally, double-check that you have no lambdas/anonymous classes that reference outer classes with ObjectMapper. ObjectMapper should also be static as it's fully immutable, so you can also check that. On Fri, Nov 20, 2020 at 8:55 PM Alexander Bagerman <bager...@gmail.com> wrote: > Thanks, Arvid, > That is what I thought too. I went through all the instances where it > might 've been a member variable and made sure that it's declared as > transient :-( Is there anything else I can check? > Alex > > On Fri, Nov 20, 2020 at 11:50 AM Arvid Heise <ar...@ververica.com> wrote: > >> Are you using ObjectMapper as a non-transient field? If so, please make >> it transient and initialize in open() of a Rich*Function. >> >> On Fri, Nov 20, 2020 at 7:56 PM Alexander Bagerman <bager...@gmail.com> >> wrote: >> >>> Hi, >>> I added my custom jar (that includes dependencies on Jackson) to Flink >>> classpath. It seems to be loaded just fine. But when the job starts I am >>> getting an exception below. I am sure how to interpret the exception though >>> and would appreciate it if somebody gives me advice on it. >>> Thanks >>> Alex >>> >>> 2020-11-20 18:34:35,643 WARN org.apache.flink.runtime.taskmanager.Task >>> [] - Source: Custom Source -> Flat Map -> Flat Map -> Sink: Unnamed (1/1) >>> (dcbf799dadba5d4b7e7f5af15919a4b6) switched from RUNNING to FAILED. >>> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot >>> instantiate user function. >>> at org.apache.flink.streaming.api.graph.StreamConfig >>> .getStreamOperatorFactory(StreamConfig.java:275) ~[flink-dist_2.11-1.11. >>> 2.jar:1.11.2] >>> at org.apache.flink.streaming.runtime.tasks.OperatorChain >>> .createChainedOperator(OperatorChain.java:471) ~[flink-dist_2.11-1.11.2 >>> .jar:1.11.2] >>> at org.apache.flink.streaming.runtime.tasks.OperatorChain >>> .createOutputCollector(OperatorChain.java:393) ~[flink-dist_2.11-1.11.2 >>> .jar:1.11.2] >>> at org.apache.flink.streaming.runtime.tasks.OperatorChain.<init>( >>> OperatorChain.java:155) ~[flink-dist_2.11-1.11.2.jar:1.11.2] >>> at org.apache.flink.streaming.runtime.tasks.StreamTask.beforeInvoke( >>> StreamTask.java:459) ~[flink-dist_2.11-1.11.2.jar:1.11.2] >>> at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke( >>> StreamTask.java:528) ~[flink-dist_2.11-1.11.2.jar:1.11.2] >>> at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:721) >>> [flink-dist_2.11-1.11.2.jar:1.11.2] >>> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:546) >>> [flink-dist_2.11-1.11.2.jar:1.11.2] >>> at java.lang.Thread.run(Thread.java:748) [?:1.8.0_265] >>> Caused by: java.lang.ClassCastException: cannot assign instance of >>> java.util.concurrent.ConcurrentHashMap to field >>> com.fasterxml.jackson.databind.deser.DeserializerCache._cachedDeserializers >>> of type com.fasterxml.jackson.databind.util.LRUMap in instance of >>> com.fasterxml.jackson.databind.deser.DeserializerCache >>> at java.io.ObjectStreamClass$FieldReflector.setObjFieldValues( >>> ObjectStreamClass.java:2301) ~[?:1.8.0_265] >>> at java.io.ObjectStreamClass.setObjFieldValues(ObjectStreamClass >>> .java:1431) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream >>> .java:2372) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java: >>> 2290) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream >>> .java:2148) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1647) >>> ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream >>> .java:2366) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java: >>> 2290) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream >>> .java:2148) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1647) >>> ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream >>> .java:2366) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java: >>> 2290) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream >>> .java:2148) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1647) >>> ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream >>> .java:2366) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java: >>> 2290) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream >>> .java:2148) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1647) >>> ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream >>> .java:2366) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java: >>> 2290) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream >>> .java:2148) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1647) >>> ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream >>> .java:2366) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java: >>> 2290) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream >>> .java:2148) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1647) >>> ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream >>> .java:2366) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java: >>> 2290) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream >>> .java:2148) ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1647) >>> ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:483) >>> ~[?:1.8.0_265] >>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:441) >>> ~[?:1.8.0_265] >>> at org.apache.flink.util.InstantiationUtil.deserializeObject( >>> InstantiationUtil.java:576) ~[flink-dist_2.11-1.11.2.jar:1.11.2] >>> at org.apache.flink.util.InstantiationUtil.deserializeObject( >>> InstantiationUtil.java:562) ~[flink-dist_2.11-1.11.2.jar:1.11.2] >>> at org.apache.flink.util.InstantiationUtil.deserializeObject( >>> InstantiationUtil.java:550) ~[flink-dist_2.11-1.11.2.jar:1.11.2] >>> at org.apache.flink.util.InstantiationUtil.readObjectFromConfig( >>> InstantiationUtil.java:511) ~[flink-dist_2.11-1.11.2.jar:1.11.2] >>> at org.apache.flink.streaming.api.graph.StreamConfig >>> .getStreamOperatorFactory(StreamConfig.java:260) ~[flink-dist_2.11-1.11. >>> 2.jar:1.11.2] >>> ... 8 more >>> >> >> >> -- >> >> Arvid Heise | Senior Java Developer >> >> <https://www.ververica.com/> >> >> Follow us @VervericaData >> >> -- >> >> Join Flink Forward <https://flink-forward.org/> - The Apache Flink >> Conference >> >> Stream Processing | Event Driven | Real Time >> >> -- >> >> Ververica GmbH | Invalidenstrasse 115, 10115 Berlin, Germany >> >> -- >> Ververica GmbH >> Registered at Amtsgericht Charlottenburg: HRB 158244 B >> Managing Directors: Timothy Alexander Steinert, Yip Park Tung Jason, Ji >> (Toni) Cheng >> > -- Arvid Heise | Senior Java Developer <https://www.ververica.com/> Follow us @VervericaData -- Join Flink Forward <https://flink-forward.org/> - The Apache Flink Conference Stream Processing | Event Driven | Real Time -- Ververica GmbH | Invalidenstrasse 115, 10115 Berlin, Germany -- Ververica GmbH Registered at Amtsgericht Charlottenburg: HRB 158244 B Managing Directors: Timothy Alexander Steinert, Yip Park Tung Jason, Ji (Toni) Cheng