【问题标题】:Tomcat throws java.lang.IllegalMonitorStateException: null when doing data writing, why?Tomcat写数据时抛出java.lang.IllegalMonitorStateException: null,为什么?
【发布时间】:2022-08-08 10:49:51
【问题描述】:

Spring Boot 的嵌入式 tomcat 在将数据写回生产环境中的某个 http 请求时会抛出 IllegalMonitorStateException。它在高负载时更频繁地发生。

Tomcat版本:tomcat-embed-core:9.0.31

以下是部分内容堆栈跟踪:

java.lang.IllegalMonitorStateException: null
        at java.lang.Object.wait(Native Method)
        at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1290)
        at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:741)
        at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBase.java:694)
        at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:684)

谢谢。

    标签: tomcat9 illegalmonitorstateexcep


    【解决方案1】:

    您可以尝试将版本升级到 9.0.32,因为您报告错误的部分逻辑在 9.0.32 中已恢复。

    https://github.com/apache/tomcat/commit/6e60713c75141bc00f03f08f759df993a6416c71

    【讨论】: