Uploaded image for project: 'ActiveMQ'
  1. ActiveMQ
  2. AMQ-2505

Problem with servicing broker messages when client hostName contains "language specific" characters (org.apache.activemq.util.IdGenerator problem)

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 5.2.0
    • Fix Version/s: 5.9.1, 5.10.0
    • Component/s: Broker
    • Labels:
      None
    • Environment:

      Windows XP SP2

      Description

      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

        Attachments

          Activity

            People

            • Assignee:
              davsclaus Claus Ibsen
              Reporter:
              sniegu Pawel Sniezek
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: