Java StatefulPersistenceContext:hibernate库中的NullPointerException
我有一个应用程序在Tomcat 7.0.37中运行了2年,没有任何错误,但昨天它给出了一个:Java StatefulPersistenceContext:hibernate库中的NullPointerException,java,hibernate,tomcat,jpa,Java,Hibernate,Tomcat,Jpa,我有一个应用程序在Tomcat 7.0.37中运行了2年,没有任何错误,但昨天它给出了一个: Exception in thread "datamanager-general-info" java.lang.NullPointerException at org.hibernate.engine.StatefulPersistenceContext.clear(StatefulPersistenceContext.java:217) at org.hibernate.impl.SessionIm
Exception in thread "datamanager-general-info" java.lang.NullPointerException
at org.hibernate.engine.StatefulPersistenceContext.clear(StatefulPersistenceContext.java:217)
at org.hibernate.impl.SessionImpl.cleanup(SessionImpl.java:623)
at org.hibernate.impl.SessionImpl.close(SessionImpl.java:351)
at org.hibernate.ejb.EntityManagerImpl.close(EntityManagerImpl.java:151)
at com.xxxxxxxxxx.DataManager$GeneralInfo.buildPages(DataManager.java:358)
关闭EntityManager时,该错误从此行的DataManager类开始:
EntityManager em = null;
try {
em = JPAUtil.getEntityManagerFactory().createEntityManager();
// code here...
} catch (Exception e) {
// nothing
} finally {
if (em != null && em.isOpen()) {
em.close(); <-- line 358
}
}
现在,它每2-3小时重复一次
我正在使用Hibernate3.6.10和JPA2.0API1.0.1以及C3P0
欢迎任何帮助 假设您的Hibernate和Tomcat版本没有更改,我会首先查看连接到Hibernate的数据库,看看是否发生了什么事情。该数据库由其他团队管理。他们通知说没有进行任何更改。如果不了解更多关于您的代码以及此异常发生的位置/时间,恐怕我们无法为您提供太多帮助。我已更新了问题,在代码中添加了开始错误的行。我记得,在这种情况下,问题是多线程系统的问题。通过一个实体管理器获得的一些对象通过另一个实体管理器移动到另一个线程,hibernate变得疯狂。