JpaPersistService.end() 在 finally 块中没有调用 entityManager.remove()
作者: gissuebot创建于 2014年7月7日更新于 2026年5月21日
标签enhancementimportedComponent-Persist
来自 hristo.sabev 于 2012 年 3 月 20 日 13:53:45
这是从源代码中复制的 JpaPersistService.end() 方法:
public void end() { EntityManager em = entityManager.get();
// 我们不应该惩罚用户多次调用 end() 方法。 if (null == em) { return; }
em.close(); entityManager.remove(); }
调用 em.close() 有时会失败。在我特定的情况下,它失败了,因为我尝试保存一个具有 500 字节以上的 byte[] 字段的对象。这导致最后一行被跳过。实际上,此线程再也不能用来处理请求,因为 JpaPersistService 的 begin() 方法总是会失败。
内容来源: google/guice