You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Gary Tully (JIRA)" <ji...@apache.org> on 2008/08/29 11:16:52 UTC
[jira] Resolved: (AMQ-1911) Kaha store can not retrieve messages
with non ASCII charcaters
[ https://issues.apache.org/activemq/browse/AMQ-1911?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gary Tully resolved AMQ-1911.
-----------------------------
Fix Version/s: 5.2.0
Resolution: Fixed
fixed in rev 690155.
> Kaha store can not retrieve messages with non ASCII charcaters
> --------------------------------------------------------------
>
> Key: AMQ-1911
> URL: https://issues.apache.org/activemq/browse/AMQ-1911
> Project: ActiveMQ
> Issue Type: Bug
> Components: Message Store
> Affects Versions: 5.2.0
> Environment: Producer: Windows XP , Broker: Windows 2003 Server, Consumer Windows 2003 Server, all activemq-5.2-20080803.231633-26
> Reporter: Kai Pruente
> Assignee: Gary Tully
> Priority: Critical
> Fix For: 5.2.0
>
>
> Scenario:
> A client with the host name "meißen" (German special character ß aka sz) sends an ObjectMessage to a persistent queue.
> This message goes from the client to the broker and from the broker to the kaha store without problems.
> After that, the broker cannot read it from the kaha store. Error message:
> ERROR 2008-08-21 12:14:10.906 AbstractStoreCursor - Failed to fill batch
> java.io.IOException: Failed to read to journal for: offset = 4770274, file = 9, size = 2317, type = 0. Reason: java.io.UTFDataFormatException: bad string
> at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:33)
> at org.apache.activemq.store.amq.AMQPersistenceAdapter.createReadException(AMQPersistenceAdapter.java:637)
> at org.apache.activemq.store.amq.AMQPersistenceAdapter.readCommand(AMQPersistenceAdapter.java:523)
> at org.apache.activemq.store.amq.AMQMessageStore.getMessage(AMQMessageStore.java:432)
> at org.apache.activemq.store.amq.RecoveryListenerAdapter.recoverMessageReference(RecoveryListenerAdapter.java:54)
> at org.apache.activemq.store.kahadaptor.KahaReferenceStore.recoverReference(KahaReferenceStore.java:82)
> at org.apache.activemq.store.kahadaptor.KahaReferenceStore.recoverNextMessages(KahaReferenceStore.java:120)
> at org.apache.activemq.store.amq.AMQMessageStore.recoverNextMessages(AMQMessageStore.java:533)
> at org.apache.activemq.broker.region.cursors.QueueStorePrefetch.doFillBatch(QueueStorePrefetch.java:75)
> at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:188)
> at org.apache.activemq.broker.region.cursors.AbstractStoreCursor.hasNext(AbstractStoreCursor.java:104)
> at org.apache.activemq.broker.region.cursors.StoreQueueCursor.hasNext(StoreQueueCursor.java:136)
> at org.apache.activemq.broker.region.Queue.doPageIn(Queue.java:1108)
> at org.apache.activemq.broker.region.Queue.pageInMessages(Queue.java:1196)
> at org.apache.activemq.broker.region.Queue.iterate(Queue.java:951)
> at org.apache.activemq.thread.DeterministicTaskRunner.runTask(DeterministicTaskRunner.java:84)
> at org.apache.activemq.thread.DeterministicTaskRunner$1.run(DeterministicTaskRunner.java:41)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
> at java.lang.Thread.run(Thread.java:619)
> Caused by: java.io.UTFDataFormatException: bad string
> at org.apache.activemq.util.DataByteArrayInputStream.readUTF(DataByteArrayInputStream.java:286)
> at org.apache.activemq.openwire.v3.BaseDataStreamMarshaller.looseUnmarshalString(BaseDataStreamMarshaller.java:572)
> at org.apache.activemq.openwire.v3.ProducerIdMarshaller.looseUnmarshal(ProducerIdMarshaller.java:115)
> at org.apache.activemq.openwire.OpenWireFormat.looseUnmarshalNestedObject(OpenWireFormat.java:471)
> at org.apache.activemq.openwire.v3.BaseDataStreamMarshaller.looseUnmarsalCachedObject(BaseDataStreamMarshaller.java:488)
> at org.apache.activemq.openwire.v3.MessageIdMarshaller.looseUnmarshal(MessageIdMarshaller.java:115)
> at org.apache.activemq.openwire.OpenWireFormat.looseUnmarshalNestedObject(OpenWireFormat.java:471)
> at org.apache.activemq.openwire.v3.BaseDataStreamMarshaller.looseUnmarsalNestedObject(BaseDataStreamMarshaller.java:467)
> at org.apache.activemq.openwire.v3.MessageMarshaller.looseUnmarshal(MessageMarshaller.java:210)
> at org.apache.activemq.openwire.v3.ActiveMQMessageMarshaller.looseUnmarshal(ActiveMQMessageMarshaller.java:102)
> at org.apache.activemq.openwire.v3.ActiveMQObjectMessageMarshaller.looseUnmarshal(ActiveMQObjectMessageMarshaller.java:102)
> at org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireFormat.java:364)
> at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:204)
> at org.apache.activemq.store.amq.AMQPersistenceAdapter.readCommand(AMQPersistenceAdapter.java:521)
> ... 17 more
> ERROR 2008-08-21 12:14:10.906 AbstractStoreCursor - Failed to fill batch
> Unfortunately the problem occurs first in the broker. This makes it very difficult to find out the real cause of the problem, the host name with a special character.
> Further on it is not possible to recover from this problem and even worse all new messages which are put into this kaha store will be also lost.
> Special characters within the message (TextMessage, MappedMessage and ObjectMessage seems to be ok.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.