[ 
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)

Reply via email to