Uploaded image for project: 'ActiveMQ C++ Client'
  1. ActiveMQ C++ Client
  2. AMQCPP-551

EOFException when sending char in MapMessage between Java and C++

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • 3.8.3
    • 3.8.4, 3.9.0
    • None
    • None
    • Ubuntu 12.04, Windows Server 2008, Java 1.7

    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
      

      Attachments

        Activity

          People

            tabish Timothy A. Bish
            pawel.rmi Pawel Remiszewski
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: