activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kai Pruente (JIRA)" <j...@apache.org>
Subject [jira] Created: (AMQ-1911) Kaha store can not retrieve messages with non ASCII charcaters
Date Mon, 25 Aug 2008 11:01:52 GMT
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
            Priority: Critical


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.


Mime
View raw message