Bug 550645 - Performance improvements to CaseInsensitiveDictionaryMap

Improve hashCode calculation to avoid Character.toUpper/LowerCase calls
for ASCII chars and make hashCode final for CaseInsensitiveKey

Improve put operations by not interning the key on every put.  It is now
up to the client to intern if necessary.  Updated ManifestElement to do
that for bundle manifest keys while parsing the bundle manifest.  Also
improved performance for keys that are not already present in the Map by
avoiding a call to remove first.

With these optimizations put together we should see ~4x perforamance
improvement in the usage of the CaseInsensitiveDictionaryMap by the
framework.


Change-Id: Ibe21780b2be95cecab994fa2ca2e817d7bab112c
Signed-off-by: Thomas Watson <tjwatson@us.ibm.com>
5 files changed