fix for: https://issues.apache.org/jira/browse/AMQCPP-510
patches the problem on 3.8.x branch
diff --git a/activemq-cpp/src/main/activemq/core/ConnectionAudit.cpp b/activemq-cpp/src/main/activemq/core/ConnectionAudit.cpp
index d3be4ee..b8e3c5e 100644
--- a/activemq-cpp/src/main/activemq/core/ConnectionAudit.cpp
+++ b/activemq-cpp/src/main/activemq/core/ConnectionAudit.cpp
@@ -18,6 +18,7 @@
#include "ConnectionAudit.h"
#include <decaf/util/LinkedHashMap.h>
+#include <decaf/util/StlMap.h>
#include <activemq/core/Dispatcher.h>
#include <activemq/core/ActiveMQMessageAudit.h>
@@ -48,10 +49,11 @@
public:
Mutex mutex;
- LinkedHashMap<Pointer<ActiveMQDestination>, Pointer<ActiveMQMessageAudit> > destinations;
+
+ StlMap<Pointer<ActiveMQDestination>, Pointer<ActiveMQMessageAudit>, ActiveMQDestination::COMPARATOR> destinations;
LinkedHashMap<Dispatcher*, Pointer<ActiveMQMessageAudit> > dispatchers;
- ConnectionAuditImpl() : mutex(), destinations(1000), dispatchers(1000) {
+ ConnectionAuditImpl() : mutex(), destinations(), dispatchers(1000) {
}
};
}}
diff --git a/activemq-cpp/src/test/activemq/core/ConnectionAuditTest.cpp b/activemq-cpp/src/test/activemq/core/ConnectionAuditTest.cpp
index 2ba97a1..4e39df3 100644
--- a/activemq-cpp/src/test/activemq/core/ConnectionAuditTest.cpp
+++ b/activemq-cpp/src/test/activemq/core/ConnectionAuditTest.cpp
@@ -94,11 +94,12 @@
pid->setSessionId(0);
pid->setValue(1);
- Pointer<ActiveMQDestination> destination(new ActiveMQQueue("TEST.QUEUE"));
Pointer<Message> message(new Message());
- message->setDestination(destination);
for (int i = 0; i < count; i++) {
+ Pointer<ActiveMQDestination> destination(new ActiveMQQueue("TEST.QUEUE"));
+ message->setDestination(destination);
+
Pointer<MessageId> id(new MessageId);
id->setProducerId(pid);
id->setProducerSequenceId(i);