You are viewing a plain text version of this content. The canonical link for it is here.
Posted to proton@qpid.apache.org by "Robbie Gemmell (JIRA)" <ji...@apache.org> on 2015/07/29 18:15:05 UTC
[jira] [Resolved] (PROTON-965) [proton-j] freed receiver link may
cause a removal from the wrong collection in the session
[ https://issues.apache.org/jira/browse/PROTON-965?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robbie Gemmell resolved PROTON-965.
-----------------------------------
Resolution: Fixed
> [proton-j] freed receiver link may cause a removal from the wrong collection in the session
> -------------------------------------------------------------------------------------------
>
> Key: PROTON-965
> URL: https://issues.apache.org/jira/browse/PROTON-965
> Project: Qpid Proton
> Issue Type: Bug
> Components: proton-j
> Affects Versions: 0.9.1
> Reporter: Robbie Gemmell
> Assignee: Robbie Gemmell
> Priority: Minor
> Fix For: 0.10
>
>
> The changes for PROTON-853 contained a defect, as it left an old method call in place that should have been removed.
> When a receiver link object is free'd, the parent session is informed and removes the link from a collection. Following PROTON-853 there are two such collections, an existing map of current reciever links and a new list of old stale links, of which the given object may be in one. The intent of the SessionImpl#freeReceiver() method is to remove a receiver from the appropriate list, however the old single-line "_receivers.remove(receiver.getName());" implementation from before PRTON-853 was somehow left in place meaning it is always called before the new implementation follows which understands the dual collections. As a result, a link object may be removed from the map incorrectly in certain cases (if it happened to have the same name, but was a different object, from the freed object).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)