症状:
在开发新建多个xml定义后,忽然发现启动axelor启动时卡住,日志里没有任何错误信息
尝试办法:
1. 修改所有日志为ALL级别,尝试查看框架错误日志 (没用)
2. 使用jstack 查看死锁 (没用,因为jstack检测不到CountDownLatch死锁)
3. 查看jstack导出日志,发现大量线程在WAITING
最终解决办法:
给CountDownLatch等待加个超时时间,快速失败,以便查看异常
axelor-open-platform/axelor-core/src/main/java/com/axelor/db/ParallelTransactionExecutor.java
private void runCommandsInTransaction() {
JPA.runInTransaction(
() -> {
RuntimeException error = null;
for (final Entry<CountDownLatch, Queue<Runnable>> entry : commands) {
final CountDownLa