[
https://issues.apache.org/jira/browse/PLC4X-319?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17495537#comment-17495537
]
Jan Vícha commented on PLC4X-319:
---------------------------------
Hi,
I tested it ... The ClassCastException does not occur now, but sometimes occurs
another one:
[nioEventLoopGroup-3-1] ERROR
org.apache.plc4x.java.opcua.protocol.OpcuaProtocolLogic - Read request ended up
with ServiceFault:
╔═ExtensionObjectDefinition/ResponseHeader══════════════════════════════════════════════════════════════════════════╗
║╔═timestamp═══════════════════════════╗╔═requestHandle╗╔═serviceResult/StatusCode/statusCode═╗
║
║║0x01d82727f823046f 132899241627681903║║0x0000000d 13 ║║ 0x80250000
2149908480 ║ ║
║╚═════════════════════════════════════╝╚══════════════╝╚═════════════════════════════════════╝
║
║╔═serviceDiagnostics/DiagnosticInfo═════════════════════════════════════════════════════════════╗╔═noOfStringTable╗║
║║╔═reserved╗╔═innerDiagnosticInfoSpecified╗╔═innerStatusCodeSpecified╗╔═additionalInfoSpecified╗║║
0x00000000 0 ║║
║║║b0 false ║║ b0 false ║║ b0 false ║║
b0 false ║║╚════════════════╝║
║║╚═════════╝╚═════════════════════════════╝╚═════════════════════════╝╚════════════════════════╝║
║
║║╔═localeSpecified╗╔═localizedTextSpecified╗╔═namespaceURISpecified╗╔═symbolicIdSpecified╗
║ ║
║║║ b0 false ║║ b0 false ║║ b0 false ║║ b0
false ║ ║ ║
║║╚════════════════╝╚═══════════════════════╝╚══════════════════════╝╚════════════════════╝
║ ║
║╚═══════════════════════════════════════════════════════════════════════════════════════════════╝
║
║╔═additionalHeader/ExtensionObject══════════════════════════════════════════════════════════════════╗
║
║║╔═typeId/ExpandedNodeId═══════════════════════════════════════════════════════════════════════════╗║
║
║║║╔═namespaceURISpecified╗╔═serverIndexSpecified╗╔═nodeId/NodeIdTypeDefinition════════════════════╗║║
║
║║║║ b0 false ║║ b0 false
║║╔═nodeType/NodeIdType═══╗╔═NodeIdTwoByte═══════╗║║║ ║
║║║╚══════════════════════╝╚═════════════════════╝║║0x0 0
nodeIdTypeTwoByte║║╔═id═══╗╭┄identifier╮║║║║ ║
║║║
║╚═══════════════════════╝║║0x00 0║┆ 0 ┆║║║║ ║
║║║ ║
║╚══════╝╰┄┄┄┄┄┄┄┄┄┄┄╯║║║║ ║
║║║ ║
╚═════════════════════╝║║║ ║
║║║
╚════════════════════════════════════════════════╝║║ ║
║║║ ╭┄identifier╮
║║ ║
║║║ ┆ 0 ┆
║║ ║
║║║ ╰┄┄┄┄┄┄┄┄┄┄┄╯
║║ ║
║║╚═════════════════════════════════════════════════════════════════════════════════════════════════╝║
║
║║╔═encodingMask/ExtensionObjectEncodingMask═══════════╗╭┄identifier╮
║ ║
║║║╔═reserved╗╔═typeIdSpecified╗╔═xmlbody╗╔═binaryBody╗║┆ 0 ┆
║ ║
║║║║ 0x0 0 ║║ b0 false ║║b0 false║║ b0 false ║║╰┄┄┄┄┄┄┄┄┄┄┄╯
║ ║
║║║╚═════════╝╚════════════════╝╚════════╝╚═══════════╝║
║ ║
║║╚════════════════════════════════════════════════════╝
║ ║
║╚═══════════════════════════════════════════════════════════════════════════════════════════════════╝
║
╚═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
> Class casts in new opcua driver
> -------------------------------
>
> Key: PLC4X-319
> URL: https://issues.apache.org/jira/browse/PLC4X-319
> Project: Apache PLC4X
> Issue Type: Bug
> Components: Driver-OPC-UA
> Affects Versions: 0.9.0
> Reporter: Łukasz Dywicki
> Assignee: Łukasz Dywicki
> Priority: Major
>
> Issue reported on mailing lists:
> {code}
> [nioEventLoopGroup-2-1] WARN 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.
> io.netty.handler.codec.DecoderException: java.lang.ClassCastException: class
> org.apache.plc4x.java.opcua.readwrite.ServiceFault cannot be cast to class
> org.apache.plc4x.java.opcua.readwrite.ReadResponse
> (org.apache.plc4x.java.opcua.readwrite.ServiceFault and
> org.apache.plc4x.java.opcua.readwrite.ReadResponse are in unnamed module of
> loader 'app')
> at
> io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:98)
> at
> io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
> at
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
> at
> io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
> at
> io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
> at
> io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
> at
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
> at
> io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
> at
> io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
> at
> io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
> at
> io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
> at
> io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
> at
> io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
> at
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
> 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:834)
> Caused by: java.lang.ClassCastException: class
> org.apache.plc4x.java.opcua.readwrite.ServiceFault cannot be cast to class
> org.apache.plc4x.java.opcua.readwrite.ReadResponse
> (org.apache.plc4x.java.opcua.readwrite.ServiceFault and
> org.apache.plc4x.java.opcua.readwrite.ReadResponse are in unnamed module of
> loader 'app')
> at
> org.apache.plc4x.java.opcua.protocol.OpcuaProtocolLogic.lambda$read$0(OpcuaProtocolLogic.java:177)
> at
> org.apache.plc4x.java.opcua.context.SecureChannel.lambda$4(SecureChannel.java:212)
> at
> org.apache.plc4x.java.spi.Plc4xNettyWrapper.decode(Plc4xNettyWrapper.java:175)
> at
> io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81)
> at
> io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88)
> ... 23 more
> {code}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)