Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-5417

ClassCastException when using amqp-1-0-jms-0.24 client

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 0.24
    • 0.26
    • C++ Broker
    • None
    • qpid-cpp 0.24 broker with AMQP 1-0 support (via Proton 0.4) running on a CentOS 6.0 host. Client running on LinuxMint 15 Desktop

    Description

      I have installed a qpid-cpp broker (via source) on my CentOS machine and successfully started.
      I have then created a simple (but more extended) test application using the amqp-1-0-jms client library.
      I can successfully connect to an ActiveMQ 5.9 as well as a qpid-java 0.24 broker and exchange messages via a configured queue.
      However, when I connect to my qpid-cpp broker (also 0.24 with proton 0.4), I can send messages to a queue, but when trying to read from the queue I am getting the following error message:

      Exception in thread "Thread-7" java.lang.ClassCastException: org.apache.qpid.amqp_1_0.type.Symbol cannot be cast to org.apache.qpid.amqp_1_0.type.Section
      at org.apache.qpid.amqp_1_0.messaging.SectionDecoderImpl.parseAll(SectionDecoderImpl.java:49)
      at org.apache.qpid.amqp_1_0.client.Receiver.receive(Receiver.java:280)
      at org.apache.qpid.amqp_1_0.jms.impl.MessageConsumerImpl.receive0(MessageConsumerImpl.java:286)
      at org.apache.qpid.amqp_1_0.jms.impl.SessionImpl$Dispatcher.run(SessionImpl.java:859)
      at java.lang.Thread.run(Thread.java:744)
      Please note: I also re-compiled my test app using the latest 0.26-SNAPSHOT jms client from source with the exact same error - in fact, the stack trace above comes from this version, in case anybody was wondering.

      Also, to verify my installations are all correct, I tried a similar test using the Java example coming with qpid-proton 0.5 and could successfully connect and exchange messages with any broker speaking AMQP 1-0 (qpid-cpp, qpid-java, ActiveMQ, and Apache Apollo)!

      I believe the issue is not actually in the subscriber, but in how the message gets put into the queue.
      I ran the following test as well:
      1. I put a message into my queue using a simple test application with the amqp-1-0-jms client library.
      2. I then used the proton-j Recv.java test application to connect to this queue (which is setup as "durable"). The proton-j 0.5 client now threw the exact same ClassCastException.

      Attachments

        Activity

          People

            Unassigned Unassigned
            uromahn Ulrich Romahn
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: