Overriding thread-safe methods with methods that are unsafe for concurrent use can result in improper synchronization, when a client that depends on the thread-safety promised by the parent inadvertently operates on an instance of the subclass. For example, an overridden synchronized method's contract can be violated when a subclass provides an implementation that is unsafe for concurrent use. Such overridings can easily result in errors that are difficult to diagnose. Consequently, programs in general should (— and security-critical programs must ) — never override thread-safe methods with methods that are unsafe for concurrent use.
...
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="c9b92dcc05fbf83d-eeffd94e-4a824c35-aade90f3-219a52fdd524e9ee71c792a7"><ac:plain-text-body><![CDATA[ | [[API 2006 | AA. Bibliography#API 06]] |
| ]]></ac:plain-text-body></ac:structured-macro> | |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="b9083591e0791e45-eb38562c-46fe4ec8-a67c81f6-6a061ac5a9f3d8f92431c7dd"><ac:plain-text-body><![CDATA[ | [[SDN 2008 | AA. Bibliography#SDN 08]] | Sun bug database, [Bug ID 4294756 | http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4294756] | ]]></ac:plain-text-body></ac:structured-macro> |
...