Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Instantiation of [simple type, class org.web3j.quorum.methods.response.raft.RaftPeer] value failed for JSON property ip due to missing (therefore NULL) value for creator parameter ip which is a non-nullable type #227

Open
konbluesky opened this issue Mar 16, 2020 · 3 comments

Comments

@konbluesky
Copy link

System information

Geth version: geth version
Geth
Version: 1.8.18-stable
Git Commit: 20c95e5d836ebe94431ff5848e894dd938f4e147
Quorum Version: 2.4.0
Architecture: amd64
Protocol Versions: [63 62]
Network Id: 1337
Go Version: go1.11.13
Operating System: linux
GOPATH=
GOROOT=/home/travis/.gimme/versions/go1.11.13.linux.amd64

OS & Version: OSX

Branch, Commit Hash or Release: git status

Environment: docker, vagrant, host os

Expected behavior

Actual behavior

Steps to reproduce the behavior

  1. run RaftRpcExample.java
    2. quorum.raftGetCluster().send().getCluster() throws JsonMappingException
 // raft cluster
            List<RaftPeer> cluster = quorum.raftGetCluster().send().getCluster().get();
            System.out.println("cluster size " + cluster.size());
            System.out.println("cluster " + cluster);
  1. [and so on...]

Error Logs

com.fasterxml.jackson.databind.JsonMappingException: Instantiation of [simple type, class org.web3j.quorum.methods.response.raft.RaftPeer] value failed for JSON property ip due to missing (therefore NULL) value for creator parameter ip which is a non-nullable type
 at [Source: buffer(ResponseBodySource(okhttp3.internal.http1.Http1ExchangeCodec$FixedLengthSource@39d76cb5)).inputStream(); line: 1, column: 258] (through reference chain: org.web3j.quorum.methods.response.raft.RaftPeer["ip"]) (through reference chain: org.web3j.quorum.methods.response.raft.RaftCluster["result"])
	at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:388)
	at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:348)
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.wrapAndThrow(BeanDeserializerBase.java:1599)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:278)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:140)
	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3798)
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2908)
	at org.web3j.protocol.Service.send(Service.java:50)
	at org.web3j.protocol.core.Request.send(Request.java:87)
	at com.hthjsj.quorum.RaftRpcExample.main(RaftRpcExample.java:29)
Caused by: com.fasterxml.jackson.databind.RuntimeJsonMappingException: Instantiation of [simple type, class org.web3j.quorum.methods.response.raft.RaftPeer] value failed for JSON property ip due to missing (therefore NULL) value for creator parameter ip which is a non-nullable type
 at [Source: buffer(ResponseBodySource(okhttp3.internal.http1.Http1ExchangeCodec$FixedLengthSource@39d76cb5)).inputStream(); line: 1, column: 258] (through reference chain: org.web3j.quorum.methods.response.raft.RaftPeer["ip"])
	at com.fasterxml.jackson.databind.MappingIterator.next(MappingIterator.java:194)
	at org.web3j.quorum.methods.response.raft.RaftCluster$ResponseDeserialiser.deserialize(RaftCluster.java:55)
	at org.web3j.quorum.methods.response.raft.RaftCluster$ResponseDeserialiser.deserialize(RaftCluster.java:42)
	at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:499)
	at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:101)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:276)
	... 6 more
Caused by: com.fasterxml.jackson.module.kotlin.MissingKotlinParameterException: Instantiation of [simple type, class org.web3j.quorum.methods.response.raft.RaftPeer] value failed for JSON property ip due to missing (therefore NULL) value for creator parameter ip which is a non-nullable type
 at [Source: buffer(ResponseBodySource(okhttp3.internal.http1.Http1ExchangeCodec$FixedLengthSource@39d76cb5)).inputStream(); line: 1, column: 258] (through reference chain: org.web3j.quorum.methods.response.raft.RaftPeer["ip"])
	at com.fasterxml.jackson.module.kotlin.KotlinValueInstantiator.createFromObjectWith(KotlinValueInstantiator.kt:53)
	at com.fasterxml.jackson.databind.deser.impl.PropertyBasedCreator.build(PropertyBasedCreator.java:138)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:471)
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1198)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:314)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:148)
	at com.fasterxml.jackson.databind.MappingIterator.nextValue(MappingIterator.java:277)
	at com.fasterxml.jackson.databind.MappingIterator.next(MappingIterator.java:192)
	... 11 more

Backtrace

[backtrace]
@vsmk98
Copy link
Contributor

vsmk98 commented Mar 16, 2020

Hi @konbluesky, please note that there have been changes to the raft.cluster api in version 2.4.0 as described here - https://github.com/jpmorganchase/quorum/blob/0b8ea86da4ed7f37bfa9b07fabd4eb11b9f6bb46/docs/Consensus/raft/raft-rpc-api.md
Further, in version 2.5.0 we have fixed an issue with the api. Please refer to Consensys/quorum#934 for further details.

can you please test with version 2.5.0 and let me know if the issue still persists?

@konbluesky
Copy link
Author

Hi @vsmk98 ,This problem is still there, I found that was caused by project web3j-quorum

The raft file https://github.com/web3j/web3j-quorum/blob/master/src/main/kotlin/org/web3j/quorum/consensus/raft.kt ,"ip" should be changed to "hostname"

@vsmk98
Copy link
Contributor

vsmk98 commented Mar 16, 2020

Thanks for the update @konbluesky. Will check and revert back

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants