Spring Boot集成测试中NioEndpoint未触发超时问题排查
问题:如何触发Tomcat连接超时?
我在Controller中加入睡眠循环,目的是在集成测试中触发服务器超时。已将Tomcat连接超时设置为较小值:
server: tomcat: connection-timeout: 1000
我已在SocketWrapper中确认socket超时已设置为该值,配置层面无问题。
但在NioEndpoint的Poller代码(来自tomcat-embed-core:9.0.4.1,第951行)中,以下判断始终不成立:
} else if ((socketWrapper.interestOps() & SelectionKey.OP_READ) == SelectionKey.OP_READ || (socketWrapper.interestOps() & SelectionKey.OP_WRITE) == SelectionKey.OP_WRITE) {
判断不成立的原因是:除了断点首次触发时(此时还未到超时时间),其余时间socketWrapper.interestOps()的值均为0。
请问我还可以采取哪些不同的操作?
内容的提问来源于stack exchange,提问作者Luis Muñiz
相关产品推荐
相关产品推荐

