pre-delete department. Connection: conn1: url=jdbc:h2:mem:test1 user=SA
pre-remove PUBLIC.DEPARTMENTS.permission. Connection: conn4: url=jdbc:default:connection user=SA
pre-remove PUBLIC.COMPANIES.permission. Connection: conn5: url=jdbc:default:connection user=SA
post-remove PUBLIC.COMPANIES.permission. Connection: conn5: url=jdbc:default:connection user=SA
Exception in thread "main" org.h2.jdbc.JdbcSQLException: Timeout trying to lock table "DEPARTMENTS"; SQL statement:
DELETE FROM permissions WHERE id=? [50200-171]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:169)
at org.h2.message.DbException.get(DbException.java:146)
at org.h2.table.RegularTable.doLock(RegularTable.java:501)
at org.h2.table.RegularTable.lock(RegularTable.java:435)
at org.h2.constraint.ConstraintReferential.existsRow(ConstraintReferential.java:368)
at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:413)
at org.h2.constraint.ConstraintReferential.checkRowRefTable(ConstraintReferential.java:431)
at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:307)
at org.h2.table.Table.fireConstraints(Table.java:873)
at org.h2.table.Table.fireAfterRow(Table.java:890)
at org.h2.command.dml.Delete.update(Delete.java:99)
at org.h2.constraint.ConstraintReferential.updateWithSkipCheck(ConstraintReferential.java:465)
at org.h2.constraint.ConstraintReferential.checkRowRefTable(ConstraintReferential.java:436)
at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:307)
at org.h2.table.Table.fireConstraints(Table.java:873)
at org.h2.table.Table.fireAfterRow(Table.java:890)
at org.h2.command.dml.Delete.update(Delete.java:99)
at org.h2.command.CommandContainer.update(CommandContainer.java:75)
at org.h2.command.Command.executeUpdate(Command.java:230)
at org.h2.jdbc.JdbcPreparedStatement.execute(JdbcPreparedStatement.java:194)
at org.bitbucket.cowwoc.h2triggerdeadlock.DeletePermissionTrigger.fire(DeletePermissionTrigger.java:54)
at org.h2.schema.TriggerObject.fireRow(TriggerObject.java:201)
at org.h2.table.Table.fireRow(Table.java:897)
at org.h2.table.Table.fireAfterRow(Table.java:888)
at org.h2.command.dml.Delete.update(Delete.java:99)
at org.h2.command.CommandContainer.update(CommandContainer.java:75)
at org.h2.command.Command.executeUpdate(Command.java:230)
at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:125)
at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:110)
at org.bitbucket.cowwoc.h2triggerdeadlock.App.main(App.java:45)
Please let me know what you think.