You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@spark.apache.org by Kohki Nishio <ta...@gmail.com> on 2017/02/21 06:36:37 UTC

ClassLoader problem - java.io.InvalidClassException: scala.Option; local class incompatible

Hello, I'm writing a Play Framework application which does Spark, however
I'm getting below

java.io.InvalidClassException: scala.Option; local class incompatible:
stream classdesc serialVersionUID = -114498752079829388, local class
serialVersionUID = 5081326844987135632
    at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:616)
    at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1630)
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1521)
    at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1630)
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1521)
    at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1781)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)
    at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2018)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1942)
    at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1808)

It's because I'm launching the application via SBT and sbt-launch.jar
contains Scala 2.10 binary. However my Spark binary is for 2.11 that's why
I'm getting this. I believe ExecutorClassLoader needs to override loadClass
method as well, can anyone comment on this ? It's picking up Option class
from system classloader.

Thanks
-- 
Kohki Nishio

Re: ClassLoader problem - java.io.InvalidClassException: scala.Option; local class incompatible

Posted by Kohki Nishio <ta...@gmail.com>.
Created a jira, I believe SBT is a valid use case, but it's resolved as Not
a Problem ..

https://issues.apache.org/jira/browse/SPARK-19675


On Mon, Feb 20, 2017 at 10:36 PM, Kohki Nishio <ta...@gmail.com> wrote:

> Hello, I'm writing a Play Framework application which does Spark, however
> I'm getting below
>
> java.io.InvalidClassException: scala.Option; local class incompatible:
> stream classdesc serialVersionUID = -114498752079829388, local class
> serialVersionUID = 5081326844987135632
>     at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:616)
>     at java.io.ObjectInputStream.readNonProxyDesc(
> ObjectInputStream.java:1630)
>     at java.io.ObjectInputStream.readClassDesc(
> ObjectInputStream.java:1521)
>     at java.io.ObjectInputStream.readNonProxyDesc(
> ObjectInputStream.java:1630)
>     at java.io.ObjectInputStream.readClassDesc(
> ObjectInputStream.java:1521)
>     at java.io.ObjectInputStream.readOrdinaryObject(
> ObjectInputStream.java:1781)
>     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)
>     at java.io.ObjectInputStream.defaultReadFields(
> ObjectInputStream.java:2018)
>     at java.io.ObjectInputStream.readSerialData(
> ObjectInputStream.java:1942)
>     at java.io.ObjectInputStream.readOrdinaryObject(
> ObjectInputStream.java:1808)
>
> It's because I'm launching the application via SBT and sbt-launch.jar
> contains Scala 2.10 binary. However my Spark binary is for 2.11 that's why
> I'm getting this. I believe ExecutorClassLoader needs to override loadClass
> method as well, can anyone comment on this ? It's picking up Option class
> from system classloader.
>
> Thanks
> --
> Kohki Nishio
>



-- 
Kohki Nishio