This project has been created as part of a tutorial: Transactions (mis)management: how to kill your app. It is a simple Java web application which demonstrates how creating a new transaction with propagation REQUIRES_NEW under existing transaction could deadlock your database layer and in essence make your application unresponsive to any calls requiring database access.