[ 
https://issues.apache.org/jira/browse/QPID-1830?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12791504#action_12791504
 ] 

Rajith Attapattu commented on QPID-1830:
----------------------------------------

If the JMS spec dictates that messages can only be read when they are received 
then we should probably get rid of the checkReadable() function used in the 
toBodyString() method. (I think this is the right fix).

Reading of the contents could be easily done without moving the position of the 
byte buffer.
The Functions.str() method does exactly that.

IMO If somebody does a toString() then not displaying the contents defeats the 
purpose of the method. Displaying something like a hashcode doesn't really add 
any value.

If there are no objections I will commit the above fix with a null check for 
the data.

> BytesMessage is unreadable
> --------------------------
>
>                 Key: QPID-1830
>                 URL: https://issues.apache.org/jira/browse/QPID-1830
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: 0.6, 0.7
>            Reporter: Aidan Skinner
>            Assignee: Rajith Attapattu
>            Priority: Critical
>             Fix For: 0.6
>
>
> This can easily be seen running the interop coordinator:
> 2009-04-28 14:24:38,377 INFO  [main] distributedtesting.Coordinator 
> (Coordinator.java:285) - Found distributed test case: 
> org.apache.qpid.interop.testcases.InteropTestCase4P2PMessageSize
> javax.jms.MessageNotReadableException: You need to call reset() to make the 
> message readable
>         at 
> org.apache.qpid.client.message.AbstractJMSMessage.checkReadable(AbstractJMSMessage.java:433)
>         at 
> org.apache.qpid.client.message.AbstractBytesMessage.toBodyString(AbstractBytesMessage.java:89)
>         at 
> org.apache.qpid.client.message.AbstractJMSMessage.toString(AbstractJMSMessage.java:371)
>         at java.lang.String.valueOf(String.java:2827)
>         at java.lang.StringBuilder.append(StringBuilder.java:115)
>         at 
> org.apache.qpid.test.utils.ConversationFactory$Conversation.send(ConversationFactory.java:263)
>         at 
> org.apache.qpid.test.framework.distributedtesting.Coordinator.start(Coordinator.java:366)
>         at 
> org.apache.qpid.test.framework.distributedtesting.Coordinator.main(Coordinator.java:315)
> 2009-04-28 14:24:39,690 INFO  [main] distributedtesting.Coordinator 
> (Coordinator.java:330) - javax.jms.MessageNotReadableException: You need to 
> call reset() to make the message readable
> java.lang.RuntimeException: javax.jms.MessageNotReadableException: You need 
> to call reset() to make the message readable
>         at 
> org.apache.qpid.client.message.AbstractJMSMessage.toString(AbstractJMSMessage.java:407)
>         at java.lang.String.valueOf(String.java:2827)
>         at java.lang.StringBuilder.append(StringBuilder.java:115)
>         at 
> org.apache.qpid.test.utils.ConversationFactory$Conversation.send(ConversationFactory.java:263)
>         at 
> org.apache.qpid.test.framework.distributedtesting.Coordinator.start(Coordinator.java:366)
>         at 
> org.apache.qpid.test.framework.distributedtesting.Coordinator.main(Coordinator.java:315)
> Caused by: javax.jms.MessageNotReadableException: You need to call reset() to 
> make the message readable
>         at 
> org.apache.qpid.client.message.AbstractJMSMessage.checkReadable(AbstractJMSMessage.java:433)
>         at 
> org.apache.qpid.client.message.AbstractBytesMessage.toBodyString(AbstractBytesMessage.java:89)
>         at 
> org.apache.qpid.client.message.AbstractJMSMessage.toString(AbstractJMSMessage.java:371)
>         ... 5 more
> This works on the 0.5-release branch, so is presumably a recentish break. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org

Reply via email to