You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Rob Godfrey (JIRA)" <qp...@incubator.apache.org> on 2008/11/06 12:59:45 UTC
[jira] Resolved: (QPID-1431) Client can fail to notify all
framelisteners
[ https://issues.apache.org/jira/browse/QPID-1431?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rob Godfrey resolved QPID-1431.
-------------------------------
Resolution: Fixed
> Client can fail to notify all framelisteners
> --------------------------------------------
>
> Key: QPID-1431
> URL: https://issues.apache.org/jira/browse/QPID-1431
> Project: Qpid
> Issue Type: Bug
> Components: Java Client
> Affects Versions: M2.1, M3
> Reporter: Martin Ritchie
> Assignee: Rob Godfrey
> Priority: Critical
> Fix For: M4
>
> Attachments: Threading.txt
>
>
> Summary:
> Due to our desire to reduce synchronization on the client it is possible to fail to notify a client of an exception state.
> As highlighted by the two thread processes below, the _frameListeners can be updated such that the notification fails to take place.
> This is due to our use of CopyOnWrite lists. As the Exception handler is propagating the exception a new syncWait can occur, which will fail as the connection is closed. There is a question of why the socket write does not fail but that may be because the close has not yet occurred.
> Suggested change:
> All uses of the _frameListeners should be synchronized and the syncWrite should check to see if the connection is closed before allowing the adding the listener. Throwing any exception that has already been set.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.