# About Rollback Cycle Processing

The Business Components for Java framework processes a rollback with the following steps:

1. Calls beforeRollback() on all TransactionListeners.

2. Invokes a database rollback.

3. Calls afterRollback() on all TransactionListeners.

If a JboException is thrown during the rollback cycle, the framework restores the database to the state it was in before rollback started, throws a new JboException, and exits.

Note: During the rollback cycle, the framework ensures that each TransactionListener's beforeRollback() and afterRollback() methods are invoked only once.