繁体   English   中英

Couchbase Java客户端IllegalReferenceCountException

[英]Couchbase java-client IllegalReferenceCountException

尝试使用AsyncBucket我在java-client-2.1.0上收到此错误:

com.couchbase.client.deps.io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1

过了一会儿,我明白了。 Couchbase完全忽略了这种情况,因此库没有适当的反馈,而Netty内部人员也无济于事。

原来,当您多次消费CB的物品时,您会得到该错误。 例如,

val getObs = asyncBucket.get("blah")
val emptyObs = getObs.isEmpty.doOnEach(...).subscribe()
val docObs = getObs.doOnEach(...).subscribe()

这是我想出的解决“找不到文档”方案的唯一方法。

要解决此问题,请使用cache()

val getObs = asyncBucket.get("blah").cache()

缓存观察者将使用Couchbase的项目,然后多个订阅者可以安全地从缓存中使用。

如果使用rxscala ,则修复方法相同。

getObs.singleOption.foreach { ... }

没有缓存将失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM