It seems that rollback sometimes does not release acquired eager locks. See attached test program and run two JVM instances on the same machine. Program schedules a task to run every 5 seconds. Tasks simply locks a key, gets the value, increases the value and puts it back surrounded by begin/commit/rollback tx boundary.
Steps to reproduce (keep repeating steps until problem is encountered):
1) Kill one running instance.
2) Restart it
See attached example output of a run.