在jdk17里使用fastjson反序列化Exception时,会抛出下面的异常,IgnoreErrorGetter配置不生效

yyyllmsg  于 8个月前  发布在  其他
关注(0)|答案(4)|浏览(182)
  1. java.lang.reflect.InaccessibleObjectException: Unable to make field private java.lang.Throwable java.lang.Throwable.cause accessible: module java.base does not "opens java.lang" to unnamed module @2dc96ada
  2. at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
  3. at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
  4. at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
  5. at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
  6. at com.alibaba.fastjson.util.TypeUtils.setAccessible(TypeUtils.java:2510)
  7. at com.alibaba.fastjson.util.FieldInfo.<init>(FieldInfo.java:196)
  8. at com.alibaba.fastjson.util.FieldInfo.<init>(FieldInfo.java:115)
  9. at com.alibaba.fastjson.util.TypeUtils.computeGetters(TypeUtils.java:2093)
  10. at com.alibaba.fastjson.util.TypeUtils.buildBeanInfo(TypeUtils.java:1819)
  11. at com.alibaba.fastjson.util.TypeUtils.buildBeanInfo(TypeUtils.java:1759)
  12. at com.alibaba.fastjson.serializer.SerializeConfig.getObjectWriter(SerializeConfig.java:564)
  13. at com.alibaba.fastjson.serializer.SerializeConfig.getObjectWriter(SerializeConfig.java:440)
  14. at com.alibaba.fastjson.serializer.JSONSerializer.getObjectWriter(JSONSerializer.java:448)
  15. at com.alibaba.fastjson.serializer.JSONSerializer.write(JSONSerializer.java:309)
  16. at com.alibaba.fastjson.JSON.toJSONString(JSON.java:687)
  17. at com.alibaba.fastjson.JSON.toJSONString(JSON.java:676)

com.alibaba.fastjson.util.TypeUtils 里的 catch AccessControlException 感觉要改为 Throwable,因为在jdk 17里抛出的异常是 java.lang.reflect.InaccessibleObjectException

  1. static void setAccessible(AccessibleObject obj){
  2. if(!setAccessibleEnable){
  3. return;
  4. }
  5. if(obj.isAccessible()){
  6. return;
  7. }
  8. try{
  9. obj.setAccessible(true);
  10. } catch(AccessControlException error){
  11. setAccessibleEnable = false;
  12. }
  13. }
nlejzf6q

nlejzf6q1#

项目升级JDK 17,未修复 fastjson,碰到了同样的问题

vshtjzan

vshtjzan2#

项目升级JDK 17,未修复 fastjson,碰到了同样的问题

请教一下,这个问题怎么处理,我升级到最新的1.2.83还是有一样的问题

qybjjes1

qybjjes13#

@zhangshuhua 最新的版本已经修复了该问题,如果你升级了,还是碰到了同样的问题,看看是不是有其他的依赖低版本fastjson

im9ewurl

im9ewurl4#

@zhangshuhua 最新的版本已经修复了该问题,如果你升级了,还是碰到了同样的问题,看看是不是有其他的依赖低版本fastjson

1.2.83还是有同样的问题。。

相关问题