javax.ws.rs.core.Response.readEntity() 陷入无限循环



我正在使用Foo f = response.readEntity(Foo.class)从javax.ws.rs.core.Response对象获取实体。

问题在于,该语句似乎卡在一个循环中(根据 htop 使用 100% 的 CPU(,直到 JVM 最终因内存不足而终止。

我尝试

使用调试器对其进行研究,但该函数对时间敏感,并且在我尝试执行分步跟踪时,服务会引发TimeoutException

问题与readEntity()函数没有直接关系:查询参数没有正确发送到 API,因此搜索参数最终在 SQL 查询中被null。再加上数据库的默认行为是在未传递参数时返回完整的数据集,导致readEntity()方法被传递了太多要处理的条目(既不是无限也不是循环(。

如果其他人有readEntity()冻结,请考虑无意中在响应对象中传递过多数据的可能性。

我不认为 1K 的数据可以被视为过度:)大约一周前,我与一个复制者(在问题中提到(打开了这个 https://github.com/eclipse-ee4j/jersey/issues/4081。在我的情况下,客户端没有使用 100% 的 CPU;它在 readEntity(( 上被阻止

相关内容

  • 没有找到相关文章