bloxbean / yaci

A Cardano Mini Protocols implementation in Java
MIT License
25 stars 3 forks source link

Exception's thrown when deserialising gov state query result #82

Open Sotatek-HuyLe3a opened 2 months ago

Sotatek-HuyLe3a commented 2 months ago

When I've tried query gov state with cardano 9.1.0 (sanchonet). I got an exception:

java.lang.ClassCastException: class co.nstant.in.cbor.model.Special cannot be cast to class co.nstant.in.cbor.model.Array (co.nstant.in.cbor.model.Special and co.nstant.in.cbor.model.Array are in unnamed module of loader 'app')
    at com.bloxbean.cardano.yaci.core.protocol.localstate.queries.GovStateQuery.deserializeGovActionIdResult(GovStateQuery.java:510)
    at com.bloxbean.cardano.yaci.core.protocol.localstate.queries.GovStateQuery.deserializeGovActionIdListResult(GovStateQuery.java:503)
    at com.bloxbean.cardano.yaci.core.protocol.localstate.queries.GovStateQuery.deserializeResult(GovStateQuery.java:99)
    at com.bloxbean.cardano.yaci.core.protocol.localstate.queries.GovStateQuery.deserializeResult(GovStateQuery.java:35)
    at com.bloxbean.cardano.yaci.core.protocol.localstate.LocalStateQueryAgent.onMsgResult(LocalStateQueryAgent.java:110)
    at com.bloxbean.cardano.yaci.core.protocol.localstate.LocalStateQueryAgent.processResponse(LocalStateQueryAgent.java:95)
    at com.bloxbean.cardano.yaci.core.protocol.Agent.receiveResponse(Agent.java:44)
    at com.bloxbean.cardano.yaci.core.network.handlers.MiniProtoClientInboundHandler.channelRead(MiniProtoClientInboundHandler.java:39)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:833)

Reason: there is a 'BREAK' item in expired gov action id item list.