[ 
https://issues.apache.org/jira/browse/AVRO-2874?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17167887#comment-17167887
 ] 

Ryan Skraba commented on AVRO-2874:
-----------------------------------

Hmmm -- very strange!  The [unit test for 
NettyServer|https://github.com/apache/avro/blob/release-1.9.2/lang/java/ipc-netty/src/test/java/org/apache/avro/ipc/netty/TestNettyServer.java#L82]
 looks nearly identical to your use case, but succeeds...

For some reason, the server is getting a {{GenericData.Record}} not a 
{{HandshakeRequest}} (specific record).  This usually only occurs when the 
specific record class (corresponding to the record full name) can't be loaded.  
I don't think this is the case, since it can see the specific record for the 
cast!

Is there anything you can tell us about how the server class is being deployed? 
 Is there anything interesting or different customized in the classpath for 
example?

> java.lang.ClassCastException: org.apache.avro.generic.GenericData$Record 
> cannot be cast to org.apache.avro.ipc.HandshakeRequest
> -------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AVRO-2874
>                 URL: https://issues.apache.org/jira/browse/AVRO-2874
>             Project: Apache Avro
>          Issue Type: Bug
>          Components: java
>    Affects Versions: 1.9.2
>            Reporter: Raghupal Reddy
>            Priority: Blocker
>
> Hi,
> Here is the stack trace
> 2020-06-29 05:00:34,712 | WARN  | w I/O worker #11 | Responder                
>         | 56 - avro-ipc - 1.9.2 | system error2020-06-29 05:00:34,712 | WARN  
> | w I/O worker #11 | Responder                        | 56 - avro-ipc - 1.9.2 
> | system errorjava.lang.ClassCastException: 
> org.apache.avro.generic.GenericData$Record cannot be cast to 
> org.apache.avro.ipc.HandshakeRequest at 
> org.apache.avro.ipc.Responder.handshake(Responder.java:209)[56:avro-ipc:1.9.2]
>  at 
> org.apache.avro.ipc.Responder.respond(Responder.java:120)[56:avro-ipc:1.9.2] 
> at 
> org.apache.avro.ipc.netty.NettyServer$NettyServerAvroHandler.messageReceived(NettyServer.java:173)[47:avro-ipc-netty:1.9.2]
>  at 
> org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)[41:org.jboss.netty:3.10.0.Final]
>  at 
> org.apache.avro.ipc.netty.NettyServer$NettyServerAvroHandler.handleUpstream(NettyServer.java:159)[47:avro-ipc-netty:1.9.2]
>  at 
> org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)[41:org.jboss.netty:3.10.0.Final]
>  at 
> org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)[41:org.jboss.netty:3.10.0.Final]
>  at 
> org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)[41:org.jboss.netty:3.10.0.Final]
>  at 
> org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)[41:org.jboss.netty:3.10.0.Final]
>  at 
> org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443)[41:org.jboss.netty:3.10.0.Final]
>  at 
> org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)[41:org.jboss.netty:3.10.0.Final]
>  at 
> org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)[41:org.jboss.netty:3.10.0.Final]
>  at 
> org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)[41:org.jboss.netty:3.10.0.Final]
>  at 
> org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)[41:org.jboss.netty:3.10.0.Final]
>  at 
> org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)[41:org.jboss.netty:3.10.0.Final]
>  at 
> org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)[41:org.jboss.netty:3.10.0.Final]
>  at 
> org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)[41:org.jboss.netty:3.10.0.Final]
>  at 
> org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)[41:org.jboss.netty:3.10.0.Final]
>  at 
> org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337)[41:org.jboss.netty:3.10.0.Final]
>  at 
> org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)[41:org.jboss.netty:3.10.0.Final]
>  at 
> org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)[41:org.jboss.netty:3.10.0.Final]
>  at 
> org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)[41:org.jboss.netty:3.10.0.Final]
>  at 
> org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)[41:org.jboss.netty:3.10.0.Final]
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[:1.8.0_252]
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)[:1.8.0_252]
>  at java.lang.Thread.run(Thread.java:748)[:1.8.0_252]
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to