Part of #423: Race condition potential in ApplicationManager concurrent operations
Problem
Lock ordering and thread-safety invariants are not documented, making it easy for future contributors to introduce deadlocks or race conditions during maintenance.
Tasks
Acceptance Criteria
- A developer new to the codebase can understand the locking strategy from documentation alone
- Lock ordering is explicitly stated and matches the implementation
- Thread-safety annotations are present on all shared mutable state
Part of #423: Race condition potential in ApplicationManager concurrent operations
Problem
Lock ordering and thread-safety invariants are not documented, making it easy for future contributors to introduce deadlocks or race conditions during maintenance.
Tasks
@ThreadSafe/@GuardedByannotations where appropriate (javax.annotation.concurrent)Acceptance Criteria