Chuck Rolke created QPID-4635:
---------------------------------
Summary: C++ Broker headerExchange misuses CopyOnWriteArray
Key: QPID-4635
URL: https://issues.apache.org/jira/browse/QPID-4635
Project: Qpid
Issue Type: Bug
Components: C++ Broker
Affects Versions: 0.20
Reporter: Chuck Rolke
Current usage of CopyOnWriteArray (COWA) is:
DirectExchange.h: typedef CopyOnWriteArray<Binding::shared_ptr> Queues;
FanOutExchange.h: typedef CopyOnWriteArray<Binding::shared_ptr> BindingsArray;
HeadersExchange.h: typedef qpid::sys::CopyOnWriteArray<BoundKey> Bindings;
Direct and FanOut exchanges keep share_ptrs in the array but Headers puts an
actual object.
This is NOT an issue for the route() function that takes a snapshot of the
array since the snapshot returns a shared_ptr to the array.
It is probably an issue when COWA adds or removes an element from the kept
array and copies of the array are made with no effort to delete the copied
objects that are going out of scope.
If nothing else certain COWA functions require an operator== function for the
HeadersExchange BoundKey that the other exchanges do not require.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]