You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@storm.apache.org by Sajith <sa...@gmail.com> on 2015/01/20 14:39:18 UTC

java.io.InvalidClassException when a component is changed an topology is re-submitted.

Hi all,

I had a running topology and then I changed a component of it by adding
additional member variable to one of the components to store the task
iD(private int taskId).

After making this change and submitting the Jar i get the following error.
When I remove this variable every things starts to work fine.

I'm using version 0.9.1-incubating. I tried clearing storm-local
directories of both supervisor and nimbus but it didn't work.

Can someone please give some idea to fix this issue.

Caused by: java.io.InvalidClassException:
processor.common.storm.component.SiddhiBolt; local class incompatible:
stream classdesc serialVersionUID = 8809520409789083350, local class
serialVersionUID = 2619815194083705726
        at
java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:617)
~[na:1.7.0_55]
        at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622)
~[na:1.7.0_55]
        at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
~[na:1.7.0_55]
        at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
~[na:1.7.0_55]
        at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
~[na:1.7.0_55]
        at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
~[na:1.7.0_55]
        at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
~[na:1.7.0_55]
        at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
~[na:1.7.0_55]
        at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
~[na:1.7.0_55]
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
~[na:1.7.0_55]
        at backtype.storm.utils.Utils.deserialize(Utils.java:82)
~[storm-core-0.9.1-incubating.jar:0.9.1-incubating]
        ... 36 common frames omitted

Re: java.io.InvalidClassException when a component is changed an topology is re-submitted.

Posted by Kosala Dissanayake <um...@gmail.com>.
*static final long field named serialVersionUID

On Wed, Jan 21, 2015 at 3:04 PM, Kosala Dissanayake <um...@gmail.com>
wrote:

> Hi Sajith,
>
> Try setting the serialVersionUID manually without relying on that
> generated automatically by Java. I.e. set a value to a static final long
> field in your SiddhiBolt.
>
> Restarting the supervisor might also do the trick (after clearing the
> local directory). Your supervisor seems to be hung up on the older version
> of your jar.
>
>
> Cheers,
> Kosala.
>
> On Wed, Jan 21, 2015 at 12:39 AM, Sajith <sa...@gmail.com> wrote:
>
>> Hi all,
>>
>> I had a running topology and then I changed a component of it by adding
>> additional member variable to one of the components to store the task
>> iD(private int taskId).
>>
>> After making this change and submitting the Jar i get the following
>> error. When I remove this variable every things starts to work fine.
>>
>> I'm using version 0.9.1-incubating. I tried clearing storm-local
>> directories of both supervisor and nimbus but it didn't work.
>>
>> Can someone please give some idea to fix this issue.
>>
>> Caused by: java.io.InvalidClassException:
>> processor.common.storm.component.SiddhiBolt; local class incompatible:
>> stream classdesc serialVersionUID = 8809520409789083350, local class
>> serialVersionUID = 2619815194083705726
>>         at
>> java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:617)
>> ~[na:1.7.0_55]
>>         at
>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622)
>> ~[na:1.7.0_55]
>>         at
>> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
>> ~[na:1.7.0_55]
>>         at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
>> ~[na:1.7.0_55]
>>         at
>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
>> ~[na:1.7.0_55]
>>         at
>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
>> ~[na:1.7.0_55]
>>         at
>> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
>> ~[na:1.7.0_55]
>>         at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
>> ~[na:1.7.0_55]
>>         at
>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
>> ~[na:1.7.0_55]
>>         at
>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
>> ~[na:1.7.0_55]
>>         at backtype.storm.utils.Utils.deserialize(Utils.java:82)
>> ~[storm-core-0.9.1-incubating.jar:0.9.1-incubating]
>>         ... 36 common frames omitted
>>
>>
>

Re: java.io.InvalidClassException when a component is changed an topology is re-submitted.

Posted by Kosala Dissanayake <um...@gmail.com>.
Hi Sajith,

Try setting the serialVersionUID manually without relying on that generated
automatically by Java. I.e. set a value to a static final long field in
your SiddhiBolt.

Restarting the supervisor might also do the trick (after clearing the local
directory). Your supervisor seems to be hung up on the older version of
your jar.


Cheers,
Kosala.

On Wed, Jan 21, 2015 at 12:39 AM, Sajith <sa...@gmail.com> wrote:

> Hi all,
>
> I had a running topology and then I changed a component of it by adding
> additional member variable to one of the components to store the task
> iD(private int taskId).
>
> After making this change and submitting the Jar i get the following error.
> When I remove this variable every things starts to work fine.
>
> I'm using version 0.9.1-incubating. I tried clearing storm-local
> directories of both supervisor and nimbus but it didn't work.
>
> Can someone please give some idea to fix this issue.
>
> Caused by: java.io.InvalidClassException:
> processor.common.storm.component.SiddhiBolt; local class incompatible:
> stream classdesc serialVersionUID = 8809520409789083350, local class
> serialVersionUID = 2619815194083705726
>         at
> java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:617)
> ~[na:1.7.0_55]
>         at
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622)
> ~[na:1.7.0_55]
>         at
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
> ~[na:1.7.0_55]
>         at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
> ~[na:1.7.0_55]
>         at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
> ~[na:1.7.0_55]
>         at
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
> ~[na:1.7.0_55]
>         at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
> ~[na:1.7.0_55]
>         at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
> ~[na:1.7.0_55]
>         at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
> ~[na:1.7.0_55]
>         at
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
> ~[na:1.7.0_55]
>         at backtype.storm.utils.Utils.deserialize(Utils.java:82)
> ~[storm-core-0.9.1-incubating.jar:0.9.1-incubating]
>         ... 36 common frames omitted
>
>