I am working on a DCP client connector with following versions.
DCP Client version 0.10.0
Java Client version 2.4.6
Core IO version 1.4.6
Rx Java version 1.2.7 (this is automatically pulled)
Whenever I run my application, I am getting following exception. I tried altering the versions of these libraries, but no luck yet. Appreciate if someone could help.
java.lang.NoSuchMethodError: com.couchbase.client.core.config.NodeInfo.hostname()Ljava/net/InetAddress;
at com.couchbase.client.dcp.conductor.HttpStreamingConfigProvider$1.onNext(HttpStreamingConfigProvider.java:90) ~[dcp-client-0.10.0.jar:?]
at com.couchbase.client.dcp.conductor.HttpStreamingConfigProvider$1.onNext(HttpStreamingConfigProvider.java:74) ~[dcp-client-0.10.0.jar:?]
at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:134) ~[rxjava-1.2.7.jar:1.2.7]
at rx.internal.operators.NotificationLite.accept(NotificationLite.java:135) ~[rxjava-1.2.7.jar:1.2.7]
at rx.subjects.SubjectSubscriptionManager$SubjectObserver.emitNext(SubjectSubscriptionManager.java:253) ~[rxjava-1.2.7.jar:1.2.7]
at rx.subjects.BehaviorSubject.onNext(BehaviorSubject.java:160) ~[rxjava-1.2.7.jar:1.2.7]
at rx.observers.SerializedObserver.onNext(SerializedObserver.java:91) ~[rxjava-1.2.7.jar:1.2.7]
at rx.subjects.SerializedSubject.onNext(SerializedSubject.java:67) ~[rxjava-1.2.7.jar:1.2.7]
at com.couchbase.client.dcp.transport.netty.ConfigHandler.decodeChunk(ConfigHandler.java:96) ~[dcp-client-0.10.0.jar:?]
at com.couchbase.client.dcp.transport.netty.ConfigHandler.channelRead0(ConfigHandler.java:76) ~[dcp-client-0.10.0.jar:?]
at com.couchbase.client.dcp.transport.netty.ConfigHandler.channelRead0(ConfigHandler.java:38) ~[dcp-client-0.10.0.jar:?]
at com.couchbase.client.deps.io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:356) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:335) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:438) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:253) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:356) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:335) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1294) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:356) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:911) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:625) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:560) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:477) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:439) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131) ~[core-io-1.4.6.jar:?]
at com.couchbase.client.deps.io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144) ~[core-io-1.4.6.jar:?]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]
@niranjan.nanda the DCP client depends on a different java client version than you are using, this is why you see this exception. Can you go back to java client 2.4.4 and see if it works?
@daschl I tried using java client version 2.4.4, but got following exception. The code that is causing this issue is shown below.
Problematic code:
new String(DcpMutationMessage.contentBytes(dcpEvent), CharEncoding.UTF_8)
Exception trace
2017-06-26 16:37:49.492 [Thread: nioEventLoopGroup-5-2] WARN com.couchbase.client.deps.io.netty.channel.DefaultChannelPipeline# - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
java.lang.IndexOutOfBoundsException: index: 0, length: 549 (expected: range(0, 477))
at com.couchbase.client.deps.io.netty.buffer.AbstractByteBuf.checkIndex0(AbstractByteBuf.java:1125) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.buffer.SlicedByteBuf.getBytes(SlicedByteBuf.java:199) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.buffer.AbstractByteBuf.getBytes(AbstractByteBuf.java:440) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.dcp.message.DcpMutationMessage.contentBytes(DcpMutationMessage.java:50) ~[dcp-client-0.10.0.jar:?]
at com.demo.dcpclient.util.function.Functions.lambda$7(Functions.java:149) ~[bin/:?]
at com.demo.dcpclient.listener.DCPEventListenerRunnable.lambda$1(DCPEventListenerRunnable.java:185) ~[bin/:?]
at com.couchbase.client.dcp.Client$3.onEvent(Client.java:295) ~[dcp-client-0.10.0.jar:?]
at com.couchbase.client.dcp.transport.netty.DcpMessageHandler.channelRead(DcpMessageHandler.java:87) ~[dcp-client-0.10.0.jar:?]
at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:356) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:335) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:280) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:396) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:356) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:335) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1294) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:356) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:911) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:625) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:560) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:477) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:439) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131) ~[core-io-1.4.4.jar:?]
at com.couchbase.client.deps.io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144) ~[core-io-1.4.4.jar:?]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]
@avsej Please look into the trace and help me with your thoughts.
@daschl In the mean time, I am trying to do some changes to the code so that I can share here (I cannot share the existing codebase as-is, because of client confidentiality).
@daschl@avsej I am trying to upload codebase that I tried to use to reproduce the error. However, this UI is not allowing me to do so saying new users are not allowed to upload files.
@daschl@avsej, I downgraded the core-io version to 1.4.4 and the java.lang.NoSuchMethodError is gone. I am surprised why latest API was not used, but that’s up to you guys anyways.
About this java.lang.IndexOutOfBoundsException, it’s happening for every DcpMutationMessage whenever contentBytes method is invoked. Should I raise a separate ticket or you want to address it as part of this ticket?