Deadlock resolution via exceptions for dependable Java applications

Deadlock occurrences represent not only abnormal states but also fatal errors, thus it is natural to consider deadlock occurrences as runtime exceptions. Exception handlers can be exploited to resolve potential deadlock occurrences during the execution of code that is not deadlock free and that can be unchangeable, invisible, or dynamically loaded from networks. This paper describes an approach of deadlock resolution via exceptions with an emphasis on the design, application and implementation of deadlock exceptions and their handlers, and shows that the approach is practical and effective in incorporating code that is not deadlock free into dependable Java applications.