0

我正在使用 3.8.0 版本,并且出现以下异常。我正在使用没有太多自定义的 ChronicleMap。我目前正在制作原型,以展示 ChronicleMap 作为在同一机器上的不同 JVM 进程之间共享数据的可行选项。当我创建一个将东西放入 ChronicleMap 的实例时,我没有看到任何问题。但是,当我尝试主要将 ChronicleMap 用作阅读器时,我每次都会看到这个异常。

Exception in thread "main" java.lang.AssertionError: java.lang.IllegalArgumentException: No enum constant net.openhft.chronicle.hash.serialization.impl.StopBitSizeMarshaller.{}
at net.openhft.chronicle.core.util.ObjectUtils.convertTo0(ObjectUtils.java:142)
at net.openhft.chronicle.core.util.ObjectUtils.convertTo(ObjectUtils.java:130)
at net.openhft.chronicle.wire.ValueIn.object(ValueIn.java:440)
at net.openhft.chronicle.wire.TextWire$TextValueIn.objectWithInferredType(TextWire.java:2482)
at net.openhft.chronicle.wire.TextWire$TextValueIn.typedMarshallable(TextWire.java:2290)
at net.openhft.chronicle.hash.impl.VanillaChronicleHash.readMarshallableFields(VanillaChronicleHash.java:240)
at net.openhft.chronicle.map.VanillaChronicleMap.readMarshallableFields(VanillaChronicleMap.java:107)
at net.openhft.chronicle.hash.impl.VanillaChronicleHash.readMarshallable(VanillaChronicleHash.java:225)
at net.openhft.chronicle.wire.SerializationStrategies$1.readUsing(SerializationStrategies.java:22)
at net.openhft.chronicle.wire.TextWire$TextValueIn.marshallable(TextWire.java:2228)
at net.openhft.chronicle.wire.ValueIn.object(ValueIn.java:429)
at net.openhft.chronicle.wire.TextWire$TextValueIn.objectWithInferredType(TextWire.java:2482)
at net.openhft.chronicle.wire.TextWire$TextValueIn.typedMarshallable(TextWire.java:2290)
at net.openhft.chronicle.map.ChronicleMapBuilder.openWithExistingFile(ChronicleMapBuilder.java:1598)
at net.openhft.chronicle.map.ChronicleMapBuilder.createWithFile(ChronicleMapBuilder.java:1444)
at net.openhft.chronicle.map.ChronicleMapBuilder.recoverPersistedTo(ChronicleMapBuilder.java:1416)
at net.openhft.chronicle.map.ChronicleMapBuilder.createOrRecoverPersistedTo(ChronicleMapBuilder.java:1410)
4

1 回答 1

1

最可能的原因是chronicle-wire使用了错误版本的依赖项。Chronicle Map 3.8.0 被证明可以与chronicle-bom:1.11.16,它指定 Chronicle Wire 版本 1.3.6,但没有其他较旧或较新版本的chronicle-bomChronicle Wire。

更新。无论使用 Chronicle Wire 版本,新的Chronicle Map 3.9.0版本都不应该有这个问题。

于 2016-06-22T03:19:48.063 回答