0

I'm running hazelcast-jet-spring artifact (not hazelcast-jet) v.0.6.1 on Spring Boot v.2.0.3.RELEASE and getting this error:

Caused by: java.lang.IllegalArgumentException: DataSerializableFactory[-45] is already registered! com.hazelcast.internal.journal.EventJournalDataSerializerHook$1@4a3e1b5d -> com.hazelcast.journal.EventJournalDataSerializerHook$1@587df3e4
    at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.register(DataSerializableSerializer.java:90)
    at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.<init>(DataSerializableSerializer.java:69)
    at com.hazelcast.internal.serialization.impl.SerializationServiceV1.<init>(SerializationServiceV1.java:103)
    at com.hazelcast.internal.serialization.impl.DefaultSerializationServiceBuilder.createSerializationService(DefaultSerializationServiceBuilder.java:275)
    at com.hazelcast.internal.serialization.impl.DefaultSerializationServiceBuilder.build(DefaultSerializationServiceBuilder.java:228)
    at com.hazelcast.internal.serialization.impl.DefaultSerializationServiceBuilder.build(DefaultSerializationServiceBuilder.java:52)
    at com.hazelcast.instance.DefaultNodeExtension.createSerializationService(DefaultNodeExtension.java:200)
    at com.hazelcast.instance.Node.<init>(Node.java:209)
    at com.hazelcast.instance.HazelcastInstanceImpl.createNode(HazelcastInstanceImpl.java:164)
    at com.hazelcast.instance.HazelcastInstanceImpl.<init>(HazelcastInstanceImpl.java:132)
    at com.hazelcast.instance.HazelcastInstanceFactory.constructHazelcastInstance(HazelcastInstanceFactory.java:196)
    at com.hazelcast.instance.HazelcastInstanceFactory.newHazelcastInstance(HazelcastInstanceFactory.java:175)
    at com.hazelcast.instance.HazelcastInstanceFactory.newHazelcastInstance(HazelcastInstanceFactory.java:125)
    at com.hazelcast.core.Hazelcast.newHazelcastInstance(Hazelcast.java:57)
    at com.hazelcast.jet.Jet.newJetInstance(Jet.java:57)

com.hazelcast.internal.journal.EventJournalDataSerializerHook com.hazelcast.journal.EventJournalDataSerializerHook

It looks like 2 classes with the same name but located in different packages are in conflicting state. Could you please advise how to avoid this?

Thanks!

1 Answers1

1

I had to use an explicit dependency to Hazelcast 3.10.

Solved!

  • What does your pom.xml look like ? `hazelcast-jet-spring:0.6.1` already has a dependency on `hazelcast:3.10`. Perhaps something else is pulling in an incompatible version first. – Neil Stevenson Jul 25 '18 at 07:40
  • Hi @neil-stevenson. hazelcast-jet-spring:0.6.1 has a dependency on hazelcast:9.4.3 and they are incompatible. I posted [this issue](https://github.com/hazelcast/hazelcast-jet/issues/977) to their bugtracker and it will be solved later. – Sergey Granev Jul 26 '18 at 08:31
  • ... and they advised me to add an explicit dependency to hazelcast:3.10. – Sergey Granev Jul 26 '18 at 08:38
  • 1
    Set the property `3.10.3` does the same and is less typing :-) – Neil Stevenson Jul 27 '18 at 12:03
  • All you're doing is overriding `hazelcast.version` in http://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/2.0.3.RELEASE/spring-boot-dependencies-2.0.3.RELEASE.pom. More result for less typing :-) Of course, 3.10 not 3.10.3 was the original override suggestion – Neil Stevenson Jul 28 '18 at 20:21