I'm running jboss embedded on tomcat.
For some reason every once in a while (I haven't figured out the circumstances yet), I get some strange transaction problems.
SeamPhaseListener (line 560) checks to make sure Transaction.instance() isn't STATUS_ACTIVE or STATUS_MARKED_ROLLBACK, but it doesn't check to make sure it's not STATUS_ROLLEDBACK. When my app has this goofy problem, Transaction.instance() returns such a transaction. When SeamPhaseListener tries to begin() it, I get a TransactionNotSupported exception, and a redirect to the debug page. But the debug page runs the seam phase listener, which again gets a rolledback transaction, and throws another exception. So I get in an infinite loop.
1. Does anybody have any idea why Transaction.instance() (under the hood implemented by Naming.getInitialContext().lookup("UserTransaction"); ) would return a rolledback transaction?
2. Can Seam make sure the transaction isn't rolledback before beginning, and therefore prevent the infinite loop I'm experiencing?
Try JBoss 4.2.1