Name: gm110360 Date: 03/20/2003
FULL PRODUCT VERSION :
java version "1.4.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92)
Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)
FULL OPERATING SYSTEM VERSION :
Linux scratchy.west.quiq.com 2.2.20 #2 Fri Mar 22
09:54:08 PST 2002 i686 unknown
Red Hat Linux release 6.2 (Piglet)
VA Linux Release 6.2.4 02/21/01
A DESCRIPTION OF THE PROBLEM :
The java.beans.Introspector class has been changed in 1.4
to use WeakHashMaps for its two caches, beanInfoCache and
declaredMethodCache. Previously it used Hashtables.
The problem is that WeakHashMap is not synchronized, where
Hashtable is. It is incorrect to use a WeakHashMap
simultaneously from more than one thread. Yet that is
exactly what the Introspector methods will do. These
methods are not synchronized in any way. If and when more
than one thread calls Introspector.getBeanInfo() at the
same time, for example, the result will be a corrupt cache.
REGRESSION. Last worked in version 1.3.1
This bug can be reproduced always.
(Review ID: 146134)