linyimin0812 / spring-startup-analyzer

spring-startup-analyzer generates an interactive spring application startup report that lets you understand what contributes to the application startup time and helps to optimize it.🚀
Apache License 2.0
1.52k stars 121 forks source link

无法生成分析报告,日志一直停留在 BeanCreateListener stop #148

Open wuzhihui1123 opened 5 months ago

wuzhihui1123 commented 5 months ago
image

我有很多的java服务,目前发现在其中的一个java服务里,无法生成分析报告,查看startup.log日志内容,发现日志一直停留在 ============BeanCreateListener stop============= 内容。如截图那样,等待了4个多小时仍是一样。

配置参数:

-javaagent:/opt/tomcat/spring-startup-analyzer/lib/spring-profiler-agent.jar -Dspring-startup-analyzer.app.health.check.timeout=120 -Dspring-startup-analyzer.app.health.check.endpoints=[一个正确的地址, 手动curl返回200]

日志文件内容 (全部)


更新:
今天发现服务的标准输出有报错,内容如下:

Exception in thread "StartupMonitor-Thread" org.picocontainer.PicoLifecycleException: PicoLifecycleException: method 'public abstract void org.picocontainer.Startable.stop()', instance 'io.github.linyimin0812.profiler.extension.enhance.springbean.BeanCreateListener@73221dde, java.lang.OutOfMemoryError at org.picocontainer.lifecycle.StartableLifecycleStrategy.doLifecycleMethod(StartableLifecycleStrategy.java:108) at org.picocontainer.lifecycle.StartableLifecycleStrategy.stopComponent(StartableLifecycleStrategy.java:113) at org.picocontainer.lifecycle.StartableLifecycleStrategy.stop(StartableLifecycleStrategy.java:126) at org.picocontainer.adapters.InstanceAdapter.stop(InstanceAdapter.java:127) at org.picocontainer.adapters.InstanceAdapter.stop(InstanceAdapter.java:104) at org.picocontainer.DefaultPicoContainer.stopAdapters(DefaultPicoContainer.java:1048) at org.picocontainer.DefaultPicoContainer.stop(DefaultPicoContainer.java:803) at org.picocontainer.DefaultPicoContainer.dispose(DefaultPicoContainer.java:844) at io.github.linyimin0812.profiler.core.container.IocContainer.stop(IocContainer.java:88) at io.github.linyimin0812.profiler.core.monitor.StartupMonitor.checkStatus(StartupMonitor.java:44) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.OutOfMemoryError at com.alibaba.fastjson2.JSONWriterUTF16.ensureCapacity(JSONWriterUTF16.java:1553) at com.alibaba.fastjson2.JSONWriterUTF16JDK8UF.writeString(JSONWriterUTF16JDK8UF.java:44) at com.alibaba.fastjson2.JSONWriterUTF16.writeReference(JSONWriterUTF16.java:1106) at com.alibaba.fastjson2.writer.ObjectWriterImplList.write(ObjectWriterImplList.java:365) at com.alibaba.fastjson.JSON.toJSONString(JSON.java:1485) at io.github.linyimin0812.profiler.extension.enhance.springbean.BeanCreateListener.stop(BeanCreateListener.java:119) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.picocontainer.lifecycle.StartableLifecycleStrategy.doLifecycleMethod(StartableLifecycleStrategy.java:101) ... 10 more


看起来是内存不足, 于是我把服务内存和线程栈内存都调到很大,仍然还是报错。  看系统监控,服务可用的内存还足够,服务也能正常启动和运行。看起来这个报错跟服务的内存没关系?
linyimin0812 commented 5 months ago

image

看错误栈,是fastjson抛出来的。

image

JSON. toJSONString()默认指定序列化结果大小是64M,是要序列化的数组太大导致的

需要在toJSONString中指定一下LargeObject,将大小指定为1G

wuzhihui1123 commented 5 months ago

@linyimin0812 收到,多谢。 我确认下这个问题,有结论后再在这里反馈

wuzhihui1123 commented 5 months ago

@linyimin0812 我看见v3.1.0 已经修复了上面所说的问题,使用新版本以后已经没有 java.lang.OutOfMemoryError 错误,但出现了其他问题(栈溢出),一开始我还以为是线程栈内存不够用,于是我增加了参数 -Xss5m ,但发现还是会出现这个问题。看起来像是出现了递归调用死循环, 具体的错误信息如下:

Exception in thread "StartupMonitor-Thread" org.picocontainer.PicoLifecycleException: PicoLifecycleException: method 'public abstract void org.picocontainer.Startable.stop()', instance 'io.github.linyimin0812.profiler.extension.enhance.springbean.BeanCreateListener@4e798fee, java.lang.OutOfMemoryError
    at org.picocontainer.lifecycle.StartableLifecycleStrategy.doLifecycleMethod(StartableLifecycleStrategy.java:108)
    at org.picocontainer.lifecycle.StartableLifecycleStrategy.stopComponent(StartableLifecycleStrategy.java:113)
    at org.picocontainer.lifecycle.StartableLifecycleStrategy.stop(StartableLifecycleStrategy.java:126)
    at org.picocontainer.adapters.InstanceAdapter.stop(InstanceAdapter.java:127)
    at org.picocontainer.adapters.InstanceAdapter.stop(InstanceAdapter.java:104)
    at org.picocontainer.DefaultPicoContainer.stopAdapters(DefaultPicoContainer.java:1048)
    at org.picocontainer.DefaultPicoContainer.stop(DefaultPicoContainer.java:803)
    at org.picocontainer.DefaultPicoContainer.dispose(DefaultPicoContainer.java:844)
    at io.github.linyimin0812.profiler.core.container.IocContainer.stop(IocContainer.java:88)
    at io.github.linyimin0812.profiler.core.monitor.StartupMonitor.checkStatus(StartupMonitor.java:44)
    at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.OutOfMemoryError
    at com.alibaba.fastjson2.JSONWriterUTF16.ensureCapacity(JSONWriterUTF16.java:1553)
    at com.alibaba.fastjson2.JSONWriterUTF16.writeInt64(JSONWriterUTF16.java:1704)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
    at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
    at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
...
省略N行
...
linyimin0812 commented 4 months ago

@linyimin0812 我看见v3.1.0 已经修复了上面所说的问题,使用新版本以后已经没有 java.lang.OutOfMemoryError 错误,但出现了其他问题(栈溢出),一开始我还以为是线程栈内存不够用,于是我增加了参数 -Xss5m ,但发现还是会出现这个问题。看起来像是出现了递归调用死循环, 具体的错误信息如下:

Exception in thread "StartupMonitor-Thread" org.picocontainer.PicoLifecycleException: PicoLifecycleException: method 'public abstract void org.picocontainer.Startable.stop()', instance 'io.github.linyimin0812.profiler.extension.enhance.springbean.BeanCreateListener@4e798fee, java.lang.OutOfMemoryError
  at org.picocontainer.lifecycle.StartableLifecycleStrategy.doLifecycleMethod(StartableLifecycleStrategy.java:108)
  at org.picocontainer.lifecycle.StartableLifecycleStrategy.stopComponent(StartableLifecycleStrategy.java:113)
  at org.picocontainer.lifecycle.StartableLifecycleStrategy.stop(StartableLifecycleStrategy.java:126)
  at org.picocontainer.adapters.InstanceAdapter.stop(InstanceAdapter.java:127)
  at org.picocontainer.adapters.InstanceAdapter.stop(InstanceAdapter.java:104)
  at org.picocontainer.DefaultPicoContainer.stopAdapters(DefaultPicoContainer.java:1048)
  at org.picocontainer.DefaultPicoContainer.stop(DefaultPicoContainer.java:803)
  at org.picocontainer.DefaultPicoContainer.dispose(DefaultPicoContainer.java:844)
  at io.github.linyimin0812.profiler.core.container.IocContainer.stop(IocContainer.java:88)
  at io.github.linyimin0812.profiler.core.monitor.StartupMonitor.checkStatus(StartupMonitor.java:44)
  at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.OutOfMemoryError
  at com.alibaba.fastjson2.JSONWriterUTF16.ensureCapacity(JSONWriterUTF16.java:1553)
  at com.alibaba.fastjson2.JSONWriterUTF16.writeInt64(JSONWriterUTF16.java:1704)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
  at com.alibaba.fastjson2.writer.OWG_1_9_BeanInitResult.write(Unknown Source)
  at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
...
省略N行
...

使用gson替换了fastjson,可以下载v3.1.1版本再试试

wuzhihui1123 commented 4 months ago

@linyimin0812 使用v3.1.1版本后,也出现了StackOverflowError,感觉像是出现了深度或者死循环类的递归?具体的错误信息如下:

22-May-2024 00:53:26.448 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 462364 ms
Exception in thread "StartupMonitor-Thread" java.lang.StackOverflowError
    at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:57)
    at sun.reflect.UnsafeQualifiedLongFieldAccessorImpl.getLong(UnsafeQualifiedLongFieldAccessorImpl.java:62)
    at sun.reflect.UnsafeQualifiedLongFieldAccessorImpl.get(UnsafeQualifiedLongFieldAccessorImpl.java:38)
    at java.lang.reflect.Field.get(Field.java:393)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:187)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:368)
    at com.google.gson.Gson$FutureTypeAdapter.write(Gson.java:1371)
    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70)
    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:97)
    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:61)
    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:196)
    at 
    省略N行

看到上面的报错,于是我增加了线程栈内存(-Xss3m), 调整完以后出现了以下日志:

==WARNING==  allocating large array--thread_id[0x00007f04f0995800]--thread_name[StartupMonitor-Thread]--array_size[603979792 bytes]--array_length[301989886 elememts]
"StartupMonitor-Thread" #13 prio=5 os_prio=0 tid=0x00007f04f0995800 nid=0x4c runnable [0x00007f04cb7fd000]
   java.lang.Thread.State: RUNNABLE

    at java.util.Arrays.copyOf(Arrays.java:3332)
    at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)
    at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448)
    at java.lang.StringBuffer.append(StringBuffer.java:270)
    - locked <0x000000078091ea10> (a java.lang.StringBuffer)
    at java.io.StringWriter.write(StringWriter.java:112)
    at com.google.gson.stream.JsonWriter.string(JsonWriter.java:642)
    at com.google.gson.stream.JsonWriter.value(JsonWriter.java:419)
    at com.google.gson.internal.bind.TypeAdapters$15.write(TypeAdapters.java:425)
    at com.google.gson.internal.bind.TypeAdapters$15.write(TypeAdapters.java:409)
    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70)
    at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:238)
    at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:144)
    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:70)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:196)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:368)
    at com.google.gson.Gson$FutureTypeAdapter.write(Gson.java:1371)