In some of the tests, we have seen the MDR operations ending up in deadlock.
This has been observed in the tests tests/org/argouml/notation/providers/uml/TestCallStateNotationUml.java and tests/org/argouml/notation/providers/uml/TestTransitionNotationUml.java in src/argouml-app.
The problem seen is that the main thread, the tearDown(), holds PrimaryIndexImpl while waiting for StorageImpl while the MDR event dispatcher thread holds StorageImpl waiting for PrimaryIndexImpl.
In some of the tests, we have seen the MDR operations ending up in deadlock.
This has been observed in the tests tests/org/argouml/notation/providers/uml/TestCallStateNotationUml.java and tests/org/argouml/notation/providers/uml/TestTransitionNotationUml.java in src/argouml-app.
The problem seen is that the main thread, the tearDown(), holds PrimaryIndexImpl while waiting for StorageImpl while the MDR event dispatcher thread holds StorageImpl waiting for PrimaryIndexImpl.