Skip to content
This repository has been archived by the owner on Mar 3, 2023. It is now read-only.

Heron does not include reflectasm dependency #1165

Closed
ajorgensen opened this issue Jul 27, 2016 · 0 comments · Fixed by #1166
Closed

Heron does not include reflectasm dependency #1165

ajorgensen opened this issue Jul 27, 2016 · 0 comments · Fixed by #1166
Assignees

Comments

@ajorgensen
Copy link
Contributor

The kryo version that heron is depends on (https://mvnrepository.com/artifact/com.esotericsoftware/kryo/3.0.3) needs access to https://mvnrepository.com/artifact/com.esotericsoftware/reflectasm in order to work. We do not currently include this dependency which leads to the following exception:

java.lang.NoClassDefFoundError: com/esotericsoftware/reflectasm/ConstructorAccess
    at com.esotericsoftware.kryo.Kryo$DefaultInstantiatorStrategy.newInstantiatorOf(Kryo.java:1233)
    at com.esotericsoftware.kryo.Kryo.newInstantiator(Kryo.java:1078)
    at com.esotericsoftware.kryo.Kryo.newInstance(Kryo.java:1087)
    at com.esotericsoftware.kryo.serializers.FieldSerializer.create(FieldSerializer.java:570)
    at com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:546)
    at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:793)
    at com.twitter.heron.api.serializer.KryoSerializer.deserialize(KryoSerializer.java:49)
    at com.twitter.heron.simulator.instance.BoltInstance.handleDataTuple(BoltInstance.java:169)
    at com.twitter.heron.simulator.instance.BoltInstance.readTuplesAndExecute(BoltInstance.java:216)
    at com.twitter.heron.simulator.instance.BoltInstance$1.run(BoltInstance.java:141)
    at com.twitter.heron.common.basics.WakeableLooper.executeTasksOnWakeup(WakeableLooper.java:142)
    at com.twitter.heron.common.basics.WakeableLooper.runOnce(WakeableLooper.java:74)
    at com.twitter.heron.common.basics.WakeableLooper.loop(WakeableLooper.java:64)
    at com.twitter.heron.simulator.executors.InstanceExecutor.run(InstanceExecutor.java:193)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Here is a test case that can be either deployed or simply run with the --local_mode flag which will run it in the simulator.
heron-kryo.tar.gz

ajorgensen added a commit to ajorgensen/heron that referenced this issue Jul 27, 2016
This dependency is required for kryo to properly determine how to
serialize or deserialize data tuples. This fixes apache#1165
ajorgensen added a commit that referenced this issue Jul 31, 2016
This dependency is required for kryo to properly determine how to
serialize or deserialize data tuples. This fixes #1165
ajorgensen added a commit to ajorgensen/heron that referenced this issue Aug 3, 2016
This dependency is required for kryo to properly determine how to
serialize or deserialize data tuples. This fixes apache#1165
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants