我已经浏览过互联网,但在下面没有找到任何东西。如果我错过了什么,请告诉我。
我们的服务器遇到c3po的“表观死锁”异常。 PFB DAO功能:
try{
criteria = session.createCriteria();
....... // restriction et al.
List<MyObject> myObj = (List<MyObj>) criteria.list();
}catch(Exception e){ //exception handling }
}finally{ session.close(); }
当我们在MyObject.class
中添加以下代码时,我们开始看到死锁异常 public class MyObject{
...//member variables and methods
private Set<CustomClass> variable;
public void setVariable(Set<CustomClass> variables){
variables.stream().sorted((e1, e2) -> e1.myFn()
.compareTo(e2.myFn())); //encountered deadlock exception after adding this line
this.variables = variables;
}
}
我删除了排序代码并在hbm映射中添加了一个order-by子句来修复死锁异常。 我的问题是 - 为什么这会引起僵局?
谢谢!
编辑:更正了代码中的拼写错误