Nikita Timofeev created CAY-2380:
------------------------------------
Summary: ReferenceMap should not store or return null values
Key: CAY-2380
URL: https://issues.apache.org/jira/browse/CAY-2380
Project: Cayenne
Issue Type: Bug
Components: Core Library
Affects Versions: 4.1.M1
Reporter: Nikita Timofeev
Assignee: Nikita Timofeev
Fix For: 4.1.M2
This one from dev@list:
{quote}
The problem is in ReferenceMap.values(). If the GC runs between
checkReferenceQueue() and the last v.get(), then null can be added to the
collection (when using the default WeakValueMap). keySet() and entrySet()
have similar issues.
{quote}
Previously used class from commons-collections forbid null values so our
implementation should do the same, this allows to clear nulls not only
explicitly in reference queue check but also inside any operation.
{{keySet()}} method will be intact as we can't make any assumption about when
returned keys will be used thus it's impractical to additionally clear stale
references in that method.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)