Affects Version/s: None
Fix Version/s: 1.3
DBCP-270 implies that the AbandonedTrace class is called from multiple threads, however it is not thread-safe:
- SimpleDateFormat is not threadsafe, but it is called without protection.
- various instance fields need to be made final to ensure that they are published correctly (memory visibility)
- getLastUsed/setLastUsed need to be synchronized - or better, createdBy made volatile so printStackTrace can access the variable safely
(createdBy is rewritten, not updated, so lost updates are not important)
Also, the Javadoc for printStackTrace() is wrong.