JVM crash

A fatal error has been detected by the Java Runtime Environment:

io.protostuff.GraphProtostuffOutput.writeObject(ILjava/lang/Object;Lio/protostuff/Schema;Z)异常

找到报错位置,为rpc接口调用部分

形参类型为List<Integer>,入参为

new ArrayList<Integer>() {{
    add(day);
}}

# An error report file with more information is saved as:
# /Users/admin/apache-tomcat-8.5.83/bin/hs_err_pid3525.log

根据提示找到失败日志

报错内容:

Exception <a 'java/lang/ClassCastException': sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl cannot be cast to java.lang.Class>

错误类型是泛型强转类报的错;

创建一个基类,带泛型的T

创建一个子类,继承父类Dao,带泛型T

运行main方法,报错

修改为不带泛型

运行成功,猜测是只创建了堆内存,但未声明引用,导致内部序列化的时候获取泛型类型时出现类似于模拟的那种情况,导致jvm crash。

所以声明List的引用并且指定泛型则可以成功执行rpc。

研究明白后再补充,如果有大佬明白求解答。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值