You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Nikita Timofeev (JIRA)" <ji...@apache.org> on 2018/01/25 09:04:00 UTC

[jira] [Closed] (CAY-2380) ReferenceMap should not store or return null values

     [ https://issues.apache.org/jira/browse/CAY-2380?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nikita Timofeev closed CAY-2380.
--------------------------------
    Resolution: Fixed

> 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
>            Priority: Major
>             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
(v7.6.3#76005)