JsonInstanceSerializer中的Apache Curator NPE

我在启动Apache Curator的ServiceProvider时遇到了一个奇怪的NPE。 这在服务器上间歇性地发生,但我无法在本地重现错误,这就是为什么很难知道问题是什么。

这是代码:

 CuratorFramework curatorFramework = CuratorFrameworkFactory.newClient(zookeeperConnectString, new RetryNTimes(5, 1000)); curatorFramework.start(); ServiceDiscovery serviceDiscovery = ServiceDiscoveryBuilder.builder(Void.class).basePath(ZK_BASE_PATH).client(curatorFramework).build(); serviceDiscovery.start(); ServiceProvider serviceProvider = serviceDiscovery.serviceProviderBuilder().serviceName(ZK_SERVICE_NAME).build(); serviceProvider.start(); 

这是堆栈跟踪:

 Caused by: java.lang.NullPointerException at org.codehaus.jackson.JsonFactory.createJsonParser(JsonFactory.java:604) at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1973) at org.apache.curator.x.discovery.details.JsonInstanceSerializer.deserialize(JsonInstanceSerializer.java:50) at org.apache.curator.x.discovery.details.ServiceCacheImpl.addInstance(ServiceCacheImpl.java:193) at org.apache.curator.x.discovery.details.ServiceCacheImpl.start(ServiceCacheImpl.java:96) at org.apache.curator.x.discovery.details.ServiceProviderImpl.start(ServiceProviderImpl.java:67) 

发生的事情是,在ServiceCacheImpl#addInstancechildData.getData()的调用返回null,并将其传递给反序列化,这显然会导致NPE。

我正在使用Apache Curator版本2.11.0。

还有其他人遇到过同样的问题吗? 谢谢!

Interesting Posts