[ https://issues.apache.org/jira/browse/AMQ-2505?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen resolved AMQ-2505. ------------------------------ Resolution: Fixed We now sanitize the hostname when generating the id stub, to only only ascii chars. > Problem with servicing broker messages when client hostName contains > "language specific" characters (org.apache.activemq.util.IdGenerator problem) > -------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: AMQ-2505 > URL: https://issues.apache.org/jira/browse/AMQ-2505 > Project: ActiveMQ > Issue Type: Bug > Components: Broker > Affects Versions: 5.2.0 > Environment: Windows XP SP2 > Reporter: Pawel Sniezek > Assignee: Claus Ibsen > Priority: Minor > Fix For: 5.10.0 > > > When name of the activeMQ client machine contains "language specific" letters > (e.g. "Gł_Ksiegowa") communication fails: > "Caused by: java.io.IOException: Failed to broker message: > ID:Gł_Ksiegowa-1407-1256558735734-0:2:3:1:1 in container: > java.io.UTFDataFormatException: bad string " > To resolve the problem in our system we've changed > org.apache.activemq.util.IdGenerator code - we replaced line: > "hostName = InetAddress.getLocalHost().getHostName();" > with: > "hostName = InetAddress.getLocalHost().getHostAddress();" > The whole exception below: > ERROR 2009-10-26 13:07:30,781 [AWT-EventQueue-0] - Local JMS transaction > failed to commit; nested exception is javax.jms.JMSException: POST COMMIT > FAILED > org.springframework.jms.connection.SynchedLocalTransactionFailedException: > Local JMS transaction failed to commit; nested exception is > javax.jms.JMSException: POST COMMIT FAILED > at > org.springframework.jms.connection.ConnectionFactoryUtils$JmsResourceSynchronization.processResourceAfterCommit(ConnectionFactoryUtils.java:408) > > at > org.springframework.transaction.support.ResourceHolderSynchronization.afterCommit(ResourceHolderSynchronization.java:74) > > at > org.springframework.transaction.support.TransactionSynchronizationUtils.invokeAfterCommit(TransactionSynchronizationUtils.java:114) > > at > org.springframework.transaction.support.TransactionSynchronizationUtils.triggerAfterCommit(TransactionSynchronizationUtils.java:100) > > at > org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCommit(AbstractPlatformTransactionManager.java:931) > > at > org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:774) > > at > org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:701) > > at > org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:321) > > at > org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116) > > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) > > at > org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635) > > at > info.fingo.asist.gui.controls.periodslist.status.ReportStatusHelper$$EnhancerByCGLIB$$2dab363.changeReportsStatus(<generated>) > > at > info.fingo.asist.action.ChangeReportStatusAction.asistActionPerformed(ChangeReportStatusAction.java:30) > > at > info.fingo.asist.action.MultiReportAction.asistActionPerformed(MultiReportAction.java:80) > > at > info.fingo.asist.action.AsistAction.fireAsistActionPerformed(AsistAction.java:297) > > at info.fingo.asist.action.AsistAction.actionPerformed(AsistAction.java:322) > at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) > at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) > at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) > at javax.swing.DefaultButtonModel.setPressed(Unknown Source) > at javax.swing.AbstractButton.doClick(Unknown Source) > at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) > at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown > Source) > at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) > at java.awt.Component.processMouseEvent(Unknown Source) > at javax.swing.JComponent.processMouseEvent(Unknown Source) > at java.awt.Component.processEvent(Unknown Source) > at java.awt.Container.processEvent(Unknown Source) > at java.awt.Component.dispatchEventImpl(Unknown Source) > at java.awt.Container.dispatchEventImpl(Unknown Source) > at java.awt.Component.dispatchEvent(Unknown Source) > at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) > at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) > at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) > at java.awt.Container.dispatchEventImpl(Unknown Source) > at java.awt.Window.dispatchEventImpl(Unknown Source) > at java.awt.Component.dispatchEvent(Unknown Source) > at java.awt.EventQueue.dispatchEvent(Unknown Source) > at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) > at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) > at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) > at java.awt.EventDispatchThread.pumpEvents(Unknown Source) > at java.awt.EventDispatchThread.pumpEvents(Unknown Source) > at java.awt.EventDispatchThread.run(Unknown Source) > Caused by: javax.jms.JMSException: POST COMMIT FAILED > at > org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49) > > at > org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1244) > > at org.apache.activemq.TransactionContext.commit(TransactionContext.java:263) > at org.apache.activemq.ActiveMQSession.commit(ActiveMQSession.java:502) > at > org.springframework.jms.connection.JmsResourceHolder.commitAll(JmsResourceHolder.java:182) > > at > org.springframework.jms.connection.ConnectionFactoryUtils$JmsResourceSynchronization.processResourceAfterCommit(ConnectionFactoryUtils.java:405) > > ... 43 more > Caused by: javax.transaction.xa.XAException: POST COMMIT FAILED > at > org.apache.activemq.transaction.LocalTransaction.commit(LocalTransaction.java:77) > > at > org.apache.activemq.broker.TransactionBroker.commitTransaction(TransactionBroker.java:154) > > at > org.apache.activemq.broker.BrokerFilter.commitTransaction(BrokerFilter.java:94) > > at > org.apache.activemq.broker.BrokerFilter.commitTransaction(BrokerFilter.java:94) > > at > org.apache.activemq.broker.MutableBrokerFilter.commitTransaction(MutableBrokerFilter.java:104) > > at > org.apache.activemq.broker.TransportConnection.processCommitTransactionOnePhase(TransportConnection.java:424) > > at org.apache.activemq.command.TransactionInfo.visit(TransactionInfo.java:99) > at > org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:294) > > at > org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:185) > > at > org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65) > > at > org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:133) > > at > org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122) > > at > org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84) > > at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137) > at java.lang.Thread.run(Unknown Source) > Caused by: java.lang.RuntimeException: java.io.IOException: Failed to broker > message: ID:Gł_Ksiegowa-1407-1256558735734-0:2:3:1:1 in container: > java.io.UTFDataFormatException: bad string > at > org.apache.activemq.broker.region.IndirectMessageReference.incrementReferenceCount(IndirectMessageReference.java:103) > > at > org.apache.activemq.broker.region.QueueSubscription.dispatch(QueueSubscription.java:170) > > at > org.apache.activemq.broker.region.PrefetchSubscription.add(PrefetchSubscription.java:129) > > at > org.apache.activemq.broker.region.policy.RoundRobinDispatchPolicy.dispatch(RoundRobinDispatchPolicy.java:58) > > at org.apache.activemq.broker.region.Queue.dispatch(Queue.java:520) > at org.apache.activemq.broker.region.Queue.access$600(Queue.java:75) > at org.apache.activemq.broker.region.Queue$3.afterCommit(Queue.java:341) > at > org.apache.activemq.transaction.Transaction.fireAfterCommit(Transaction.java:83) > > at > org.apache.activemq.transaction.LocalTransaction.commit(LocalTransaction.java:71) > > ... 14 more > Caused by: java.io.IOException: Failed to broker message: > ID:Gł_Ksiegowa-1407-1256558735734-0:2:3:1:1 in container: > java.io.UTFDataFormatException: bad string > at > org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:31) > > at > org.apache.activemq.store.jdbc.JDBCMessageStore.getMessage(JDBCMessageStore.java:107) > > at > org.apache.activemq.store.ProxyMessageStore.getMessage(ProxyMessageStore.java:48) > > at > org.apache.activemq.broker.region.IndirectMessageReference.incrementReferenceCount(IndirectMessageReference.java:95) > > ... 22 more > Caused by: java.io.UTFDataFormatException: bad string > at > org.apache.activemq.util.DataByteArrayInputStream.readUTF(DataByteArrayInputStream.java:277) > > at > org.apache.activemq.openwire.v2.BaseDataStreamMarshaller.looseUnmarshalString(BaseDataStreamMarshaller.java:536) > > at > org.apache.activemq.openwire.v2.ConnectionIdMarshaller.looseUnmarshal(ConnectionIdMarshaller.java:113) > > at > org.apache.activemq.openwire.OpenWireFormat.looseUnmarshalNestedObject(OpenWireFormat.java:445) > > at > org.apache.activemq.openwire.v2.BaseDataStreamMarshaller.looseUnmarsalCachedObject(BaseDataStreamMarshaller.java:454) > > at > org.apache.activemq.openwire.v2.LocalTransactionIdMarshaller.looseUnmarshal(LocalTransactionIdMarshaller.java:117) > > at > org.apache.activemq.openwire.OpenWireFormat.looseUnmarshalNestedObject(OpenWireFormat.java:445) > > at > org.apache.activemq.openwire.v2.BaseDataStreamMarshaller.looseUnmarsalCachedObject(BaseDataStreamMarshaller.java:454) > > at > org.apache.activemq.openwire.v2.MessageMarshaller.looseUnmarshal(MessageMarshaller.java:195) > > at > org.apache.activemq.openwire.v2.ActiveMQMessageMarshaller.looseUnmarshal(ActiveMQMessageMarshaller.java:101) > > at > org.apache.activemq.openwire.v2.ActiveMQObjectMessageMarshaller.looseUnmarshal(ActiveMQObjectMessageMarshaller.java:101) > > at > org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireFormat.java:349) > > at > org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:204) > > at > org.apache.activemq.store.jdbc.JDBCMessageStore.getMessage(JDBCMessageStore.java:104) > > ... 24 more -- This message was sent by Atlassian JIRA (v6.1#6144)