java.lang.VerifyError when using jackson-module-scala_2.11

486 views
Skip to first unread message

jack...@mz.com

unread,
Jul 26, 2016, 12:05:38 AM7/26/16
to jackson-user
Hi all,

I want to use jackson-module-scala_2.11:2.7.5 in my Apache Flink codebase. When I attempt to run the code I get

java.lang.VerifyError: Cannot inherit from final class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at com.fasterxml.jackson.module.scala.modifiers.OptionTypeModifierModule$class.$init$(OptionTypeModifierModule.scala:22)
at com.fasterxml.jackson.module.scala.DefaultScalaModule.<init>(DefaultScalaModule.scala:19)
at com.fasterxml.jackson.module.scala.DefaultScalaModule$.<init>(DefaultScalaModule.scala:36)
at com.fasterxml.jackson.module.scala.DefaultScalaModule$.<clinit>(DefaultScalaModule.scala)

I looked up on the web and it appears to be a versioning issue. In my far jar I see that I have both org.codehaus.jackson and com.fasterxml.jackson packages. In particular, Flink's core library uses jackson-core-asl:1.9.13 and jackson-mapper-asl:1.9.13, which I can't really change. 

Can anyone help me solve this issue?

Thanks,

Jack

Tatu Saloranta

unread,
Jul 26, 2016, 12:10:50 AM7/26/16
to jackso...@googlegroups.com
Actually I don't think your problem is related to Jackson 1.x usage, since you are trying to use 2.7.5 version of Scala module, which requires 2.x base components. 1.x and 2.x components reside in different Java packages and have different Maven group ids so they do not collide.

However it seems likely that your build has an old 1.x version of `jackson-databind`. While error does not contain information showing which class was `final` in an earlier version, I think you need to add explicit depenendency to 2.7.5 verson of at `jackson-databind`, and probably for safety also for `jackson-core` and `jackson-annotations` that databind depends (they are transitive dependencies so version you otherwise get may be something different).

-+ Tatu +-

ps. Flink is very cool so I want to make sure Jackson works with it as well as possible -- using it a bit at work


--
You received this message because you are subscribed to the Google Groups "jackson-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jackson-user...@googlegroups.com.
To post to this group, send email to jackso...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages