Using KeyValueDictionary>>removeKey:otherwise: with a key that does not
occur within the dictionary can sometimes result in decrementing the numElements
and numCollisions fields in the dictionary, even though nothing was actually
removed. This won't be detectable until additional entries are removed
from the dictionary, causing the numElements field to become negative and
triggering an #objErrCorruptObj error (2261).
This bug effects KeyValueDictionary and all subclasses that don't override
the #removeKey:otherwise: method, including:
IntegerKeyValueDictionary
StringKeyValueDictionary
CanonicalStringDictionary
IdentityKeyValueDictionary
IdentityDictionary
SymbolDictionary
LanguageDictionary
SymbolKeyValueDictionary
Use other remove methods, or check that the key actually does exist in
the dictionary before using #removeKey:otherwise:.
If you have dictionaries suffering from this problem, contact GemStone
Technical Support for code that will repair the dictionaries.
Last updated: 11/23/11