io.protostuff.runtime.RuntimeUnsafeFieldFactory cannot have the same number
时间:2022-07-25
本文章向大家介绍io.protostuff.runtime.RuntimeUnsafeFieldFactory cannot have the same number,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
报错
消费方调用rpc pb序列化报错如下:
ExecutionException: java.lang.RuntimeException: io.netty.handler.codec.EncoderException: java.lang.IllegalStateException: io.protostuff.runtime.Runti
meUnsafeFieldFactory$9$1@254189a5 and io.protostuff.runtime.RuntimeUnsafeFieldFactory$9$1@5b03de85 cannot have the same number.
io.netty.handler.codec.EncoderException: java.lang.IllegalStateException: io.protostuff.runtime.RuntimeUnsafeFieldFactory$9$1@254189a5 and io.protostuff.runt
ime.RuntimeUnsafeFieldFactory$9$1@5b03de85 cannot have the same number.
at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:125)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:749)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:741)
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:827)
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:734)
at io.netty.handler.timeout.IdleStateHandler.write(IdleStateHandler.java:286)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:749)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:741)
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:827)
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:734)
at io.netty.channel.ChannelDuplexHandler.write(ChannelDuplexHandler.java:106)
at org.apache.dubbo.remoting.transport.netty4.NettyClientHandler.write(NettyClientHandler.java:87)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:749)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:741)
at io.netty.channel.AbstractChannelHandlerContext.access$1900(AbstractChannelHandlerContext.java:39)
at io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.write(AbstractChannelHandlerContext.java:1100)
at io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask.write(AbstractChannelHandlerContext.java:1147)
at io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.run(AbstractChannelHandlerContext.java:1089)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:418)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:454)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:873)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: io.protostuff.runtime.RuntimeUnsafeFieldFactory$9$1@254189a5 and io.protostuff.runtime.RuntimeUnsafeFieldFactory$
9$1@5b03de85 cannot have the same number.
at io.protostuff.runtime.ArrayFieldMap.<init>(ArrayFieldMap.java:44)
at io.protostuff.runtime.RuntimeSchema.createFieldMap(RuntimeSchema.java:381)
at io.protostuff.runtime.RuntimeSchema.<init>(RuntimeSchema.java:360)
at io.protostuff.runtime.RuntimeSchema.createFrom(RuntimeSchema.java:282)
at io.protostuff.runtime.RuntimeSchema.createFrom(RuntimeSchema.java:187)
源码 及 解决
可以看到,在循环字段的时候,如果filed数组不为空,那么说明编号重复。 反查代码:有两个一样的编号。
- VS 2005 文本编码小技巧
- 混搭.NET技术
- 修改终端服务器的最大连接数
- 跨平台移动开发UI语言 -XAML
- S-shortcodes:WordPress短代码形式美化框插件下载
- 服务器同时存在1.1和2.0程序注意事项
- Flash/Flex学习笔记(44):万有引力与粒子系统
- 代码重写WordPress网页标题为“原网页标题|网站名”的形式
- 未来10年21个核心工作岗位
- Asp.net 2.0 WebPart使用经验点滴
- 使用LinqToExcel读取Excel
- 时代的需要:越来越多的Java工程师开始转向hadoop?
- 如何结合IbatisNet的LIST遍历实现模糊查询
- Flash/Flex学习笔记(41):碰撞检测
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 在mysql中order by是怎样工作的?
- 多线程应用 - 阻塞队列ArrayBlockingQueue详解
- Java虚拟机 - 超级详细的类加载说明
- ReentrantLock
- 多线程应用 - 阻塞队列LinkedBlockingDeque详解
- AtomicInteger详解
- 多线程应用 - 阻塞队列LinkedBlockingQueue详解
- 多线程应用 - 超详细的AQS详情
- 多线程应用 - 基于AQS的Condition
- HashMap源码分析 - jdk8
- HashMap源码分析 - JDK7和JDK8有什么区别
- 线程应用 - 中断interrupt详解
- ThreadLocal全面解析
- tomcat类加载机制了解一下
- tomcat-超详细的启动流程(init)