反应堆测试失败

时间:2014-03-24 06:13:34

标签: reactor chronicle

我试图第一次尝试反应堆。 所以我克隆并构建(如在https://github.com/reactor/reactor中)。

我正在使用Windows XP和jdk 8。 但是,当我运行./gradlew测试时,我收到以下错误:

reactor.queue.PersistentQueueSpec > Java Chronicle-based PersistentQueue is performant FAILED
java.lang.IllegalStateException: com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'test': was expecting 'null', 'true', 'false' or NaN
 at [Source: reactor.io.Buffer$BufferInputStream@136ec72; line: 1, column: 6]
    at reactor.io.encoding.json.JsonCodec$JsonDecoder.apply(JsonCodec.java:112)
    at reactor.io.encoding.json.JsonCodec$JsonDecoder.apply(JsonCodec.java:88)
    at reactor.queue.IndexedChronicleQueuePersistor.read(IndexedChronicleQueuePersistor.java:189)
    at reactor.queue.IndexedChronicleQueuePersistor.access$900(IndexedChronicleQueuePersistor.java:27)
    at reactor.queue.IndexedChronicleQueuePersistor$ChronicleRemoveFunction.get(IndexedChronicleQueuePersistor.java:253)
    at reactor.queue.IndexedChronicleQueuePersistor$1.next(IndexedChronicleQueuePersistor.java:172)
    at reactor.queue.PersistentQueueSpec.Java Chronicle-based PersistentQueue is performant(PersistentQueueSpec.groovy:103)
    Caused by:
    com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'test': was expecting 'null', 'true', 'false' or NaN
     at [Source: reactor.io.Buffer$BufferInputStream@136ec72; line: 1, column: 6]
        at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1524)
        at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:557)
        at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidToken(UTF8StreamJsonParser.java:3095)
        at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidToken(UTF8StreamJsonParser.java:3073)
        at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._matchToken(UTF8StreamJsonParser.java:2479)
        at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:793)
        at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:698)
        at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:3024)
        at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2971)
        at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2137)
        at reactor.io.encoding.json.JsonCodec$JsonDecoder.apply(JsonCodec.java:103)
        ... 6 more

似乎我在此post中遇到类似的错误。在这篇文章中,如果没有使用该功能,建议@Ignore测试。但是我不确定将来是否会使用这些功能。

任何人都知道如何建立&无需@Ignore即可成功测试?

1 个答案:

答案 0 :(得分:2)

目前尚不清楚为什么这个测试对某些Windows用户失败了。它可能与在该平台上使用Java Chronicle有关。 OpenHFT库依靠Unsafe来获得某些功能的速度,而且说实话,我不确定Java Chronicle在Windows平台上的支持程度如何。

最好有一个GitHub issue详细说明这个失败,并包括有关操作系统,硬件,JVM版本等的重要细节......我们将尝试在一些OpenHFT人员和看看是否有任何可以指向我们的东西。

更新:如果文件描述符未正确发布,那么测试问题实际上是在清理中可能会在某些操作系统上失败。这是一个良性错误,我们会尝试并获得良好的解决方案。与此同时,我说可以安全地将@Ignore添加到测试中,而不用担心PersistentQueue的内容不起作用,因为它只是测试清理失败,而不是Java Chronicle本身的功能。