从 Chronicle 地图文件读取时出现异常
Exception while reading from the Chronicle Map file
我正在使用 3.8.0 版,但出现以下异常。我使用的 ChronicleMap 没有太多定制。我目前正在制作原型,以展示 ChronicleMap 作为在同一个盒子上的不同 JVM 进程之间共享数据的可行选项。当我创建一个将内容放入 ChronicleMap 的实例时,我没有发现任何问题。但是,当我尝试主要将 ChronicleMap 用作 reader 时,我每次都会看到此异常。
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.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)
最可能的原因是使用了错误的 chronicle-wire
依赖项版本。 Chronicle Map 3.8.0 已被证明可与 chronicle-bom:1.11.16
一起使用,它指定 Chronicle Wire 版本 1.3.6,但没有其他更旧或更新版本的 chronicle-bom
或 Chronicle Wire。
更新。无论使用 Chronicle Wire 版本如何,新的 Chronicle Map 3.9.0 版本都不应该出现此问题。
我正在使用 3.8.0 版,但出现以下异常。我使用的 ChronicleMap 没有太多定制。我目前正在制作原型,以展示 ChronicleMap 作为在同一个盒子上的不同 JVM 进程之间共享数据的可行选项。当我创建一个将内容放入 ChronicleMap 的实例时,我没有发现任何问题。但是,当我尝试主要将 ChronicleMap 用作 reader 时,我每次都会看到此异常。
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.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)
最可能的原因是使用了错误的 chronicle-wire
依赖项版本。 Chronicle Map 3.8.0 已被证明可与 chronicle-bom:1.11.16
一起使用,它指定 Chronicle Wire 版本 1.3.6,但没有其他更旧或更新版本的 chronicle-bom
或 Chronicle Wire。
更新。无论使用 Chronicle Wire 版本如何,新的 Chronicle Map 3.9.0 版本都不应该出现此问题。