Details
Description
Char values in MapMessage cause EOFException when sending message between Java and C++ (both ways).
When sending messages with char values between Java <=> Java and c++ <=> c++ it works without errors.
Don't know if the issue is in Java or c++ part, so I create 2 issues (one for Java ActiveMQ and one for C++)
ActiveMQ version used: 5.10.0
ActiveMQ-CPP version used: 3.8.3
Also tried with older (3.7.0) and the newest (master from GIT) version of ActiveMQ-CPP and the same error is thrown.
Scenario 1 (send message from Java to c++):
1. when MapMessage contains only one char value, no exception is thrown on c++ side, but value is always equals to 0.
2. when MapMessage contains char value and some additional values (no matter what type) EOF exception is thrown on c++ side.
Scenario 2 (send message from c++ to Java):
1. when MapMessage contains at lease one char value, EOF exception is thrown on Java side.
Java stacktrace:
javax.jms.JMSException: java.io.EOFException at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62) at org.apache.activemq.command.ActiveMQMapMessage.loadContent(ActiveMQMapMessage.java:178) at org.apache.activemq.command.ActiveMQMapMessage.initializeReading(ActiveMQMapMessage.java:795) at org.apache.activemq.command.ActiveMQMapMessage.getMapNames(ActiveMQMapMessage.java:537) at activemq.test.TestConsumer.onMessage(TestConsumer.java:59) at activemq.test.TestConsumer.<init>(TestConsumer.java:39) at activemq.test.App.main(App.java:12) Caused by: java.io.EOFException at java.io.DataInputStream.readChar(DataInputStream.java:365) at org.apache.activemq.util.MarshallingSupport.unmarshalPrimitive(MarshallingSupport.java:175) at org.apache.activemq.util.MarshallingSupport.unmarshalPrimitiveMap(MarshallingSupport.java:98) at org.apache.activemq.util.MarshallingSupport.unmarshalPrimitiveMap(MarshallingSupport.java:78) at org.apache.activemq.util.MarshallingSupport.unmarshalPrimitiveMap(MarshallingSupport.java:70) at org.apache.activemq.command.ActiveMQMapMessage.loadContent(ActiveMQMapMessage.java:174) ... 5 more