RabbitMQ version 3
org.springframework.amqp 1.0.0.RELEASE


Hi, I am new to spring and amqp and I have an error in a project.

First here is the code that puts the value in the org.springframework.amqp.core.MessageProperties

Code:
 public final void sendClientUpdates(final String queueName, final String textMessage,
                                        final Object updateIds, final String replyUrl) {
        MessageProperties messageProperties = new MessageProperties();
        ByteArrayOutputStream output = new ByteArrayOutputStream();
        XMLEncoder encoder = new XMLEncoder(output);
        encoder.writeObject(updateIds);
        try {
            encoder.close();
            output.close();
        } catch (IOException ex) {
            logger.warn("", ex);
        }
        messageProperties.setHeader(UPDATE_ID_PROPERTY, output.toString());

When reading the message from the queue

Code:
public void onMessage(final Message message) {
        Map<String, Object> headers = message.getMessageProperties().getHeaders();
        XMLDecoder decoder = new XMLDecoder(
                    new ByteArrayInputStream(((String) headers.get(UPDATE_ID_PROPERTY)).getBytes()));
I get a
java.lang.ClassCastException: java.io.DataInputStream cannot be cast to java.lang.String

Suddenly UPDATE_ID_PROPERTY is a java.io.DataInputStream.

This does not happen all the time... but very often.

The UPDATE_ID_PROPERTY would normally look like this

UPDATE_ID_PROPERTY : <?xml version="1.0" encoding="UTF-8"?>
<java version="1.7.0_13" class="java.beans.XMLDecoder">
<object class="java.util.ArrayList">
<void method="add">
<long>162</long>
</void>
</object>
</java>