Skip to content

spring-startup-analyzer使用失败 #164

@fuzigege

Description

@fuzigege

使用最新的3.1.2版本,按照使用指导配置了spring-startup-analyzer.app.health.check.endpoints,改造了启动脚本,加入了-javaagent:选项。
启动后,报错
Exception in thread "StartupMonitor-Thread" com.alibaba.fastjson.JSONException: toJSONString error
at com.alibaba.fastjson.JSON.toJSONString(JSON.java:1545)
at io.github.linyimin0812.profiler.common.ui.StartupVO.toJSONString(StartupVO.java:55)
at io.github.linyimin0812.profiler.core.container.IocContainer.writeStartupVOToHtml(IocContainer.java:107)
at io.github.linyimin0812.profiler.core.container.IocContainer.stop(IocContainer.java:94)
at io.github.linyimin0812.profiler.core.monitor.StartupMonitor.checkStatus(StartupMonitor.java:44)
at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.IllegalStateException: InputStream has already been read - do not use InputStreamResource if a stream needs to be read multiple times
at org.springframework.core.io.InputStreamResource.getInputStream(InputStreamResource.java:97)
at com.alibaba.fastjson2.writer.FieldWriterObjectFunc.getFieldValue(FieldWriterObjectFunc.java:36)
at com.alibaba.fastjson2.writer.FieldWriterObject.write(FieldWriterObject.java:222)
at com.alibaba.fastjson2.writer.ObjectWriterAdapter.writeWithFilter(ObjectWriterAdapter.java:475)
at com.alibaba.fastjson2.writer.ObjectWriter8.write(ObjectWriter8.java:73)
at com.alibaba.fastjson2.writer.FieldWriterObject.write(FieldWriterObject.java:354)
at com.alibaba.fastjson2.writer.ObjectWriterAdapter.writeWithFilter(ObjectWriterAdapter.java:475)
at com.alibaba.fastjson2.writer.ObjectWriterAdapter.write(ObjectWriterAdapter.java:295)
at com.alibaba.fastjson2.writer.ObjectWriterArray.write(ObjectWriterArray.java:85)
at com.alibaba.fastjson2.writer.OWG_4_4_MethodInvokeDetail.write(Unknown Source)
at com.alibaba.fastjson2.writer.FieldWriterList.writeList(FieldWriterList.java:253)
at com.alibaba.fastjson2.writer.OWG_3_5_MethodInvokeMetrics.write(Unknown Source)
at com.alibaba.fastjson2.writer.ObjectWriterImplList.write(ObjectWriterImplList.java:371)
at com.alibaba.fastjson.JSON.toJSONString(JSON.java:1537)
... 5 more

可见3.1.2用了fastjson2。
退回去用3.1.1版本,StartupMonitor-Thread线程依然报错:
Exception in thread "StartupMonitor-Thread" java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:911)
at java.util.ArrayList$Itr.next(ArrayList.java:861)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:96)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:61)
at com.google.gson.Gson.toJson(Gson.java:842)
at com.google.gson.Gson.toJson(Gson.java:812)
at com.google.gson.Gson.toJson(Gson.java:759)
at com.google.gson.Gson.toJson(Gson.java:736)
at io.github.linyimin0812.profiler.common.ui.StartupVO.toJSONString(StartupVO.java:59)
at io.github.linyimin0812.profiler.core.container.IocContainer.writeStartupVOToHtml(IocContainer.java:107)
at io.github.linyimin0812.profiler.core.container.IocContainer.stop(IocContainer.java:94)
at io.github.linyimin0812.profiler.core.monitor.StartupMonitor.checkStatus(StartupMonitor.java:44)
at java.lang.Thread.run(Thread.java:750)

可见虽然3.1.1版本用的是gson,但是代码存在线程安全性问题,故而ConcurrentModificationException异常。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions