... here's the head of the ST ...
javax.transaction.TransactionRolledbackException: Transaction synchronization failed - wrong status of external JTA tx. Expected was an 'active' or 'no transaction', found status is 'STATUS_MARKED_ROLLBACK'; nested exception is:
org.apache.ojb.broker.PBFactoryException: Transaction synchronization failed - wrong status of external JTA tx. Expected was an 'active' or 'no transaction', found status is 'STATUS_MARKED_ROLLBACK'
... as you can see we're also using Apache's OJB, which I forget to mention in the previous post.
Its all right ;) I found the problem - it was in a framework we're using. They force a setRollbackOnly in all cases where something 'bad' happens. And in this instance the business code was written to catch the error and choose an alternate path. Hence, a great example of how *not* to write a framework ;D
A framework should always help the user achieving their goal by lightening their load but without forcing them down paths they might not want to go ;) Ah well - I guess I'll have a chat with the framework guys :D