[ 
https://issues.apache.org/jira/browse/AMQ-5995?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14943501#comment-14943501
 ] 

Timothy Bish edited comment on AMQ-5995 at 10/5/15 3:47 PM:
------------------------------------------------------------

The version of openwire used to store data in the persistence layer was updated 
in 5.12.0 to fix ongoing interoperability issues across the various wire 
protocols that the broker supports.  The fix here would be to network a new 
broker to the older instance and drain off the messages in the JDBC store by 
creating demand on the new broker for the Queues that exist in your older store.

Your other option is to set the store openwire version explicitly to v6 using 
the BrokerService#setStoreOpenWireVersion method but this will negate the 
changes put in place to support interoperability amongst the wire protocols 
supported on the broker.   


was (Author: tabish121):
The version of openwire used to store data in the persistence layer was updated 
in 5.12.0 to fix ongoing interoperability issues across the various wire 
protocols that the broker supports.  The fix here would be to network a new 
broker to the older instance and drain off the messages in the JDBC store by 
creating demand on the new broker for the Queues that exist in your older store.

> ActiveMQ exits on startup with UTFDataFormatException: bad string
> -----------------------------------------------------------------
>
>                 Key: AMQ-5995
>                 URL: https://issues.apache.org/jira/browse/AMQ-5995
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.12.0
>            Reporter: Gijsbert van den Brink
>
> When upgrading from 5.11.1 to 5.12, ActiveMQ does not start and exits with an 
> error (see full stack trace below). The issue occurs when ActiveMQ reads a 
> message from the store (in my case an Oracle database using 
> JDBCPersistenceAdapter) that was stored in 5.11.1 and tries to read in 
> 5.12.0. 
> Tim Bain sugested on the mailing list that maybe the Openwire format is 
> incompatible between 5.11.1 and 5.12.0. One thing I noticed when debugging 
> this is that 5.11.1 uses v6.MessageIdMarshaller, while 5.12.0 uses v11. Not 
> sure if that has anything to do with this issue though.
> ERROR o.a.activemq.broker.BrokerService - Failed to start Apache ActiveMQ 
> ([eda2e5a4c4d0, null], {}) 
> java.io.UTFDataFormatException: bad string 
>         at 
> org.apache.activemq.util.DataByteArrayInputStream.readUTF(DataByteArrayInputStream.java:315)
>  ~[activemq-client-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.openwire.v11.BaseDataStreamMarshaller.looseUnmarshalString(BaseDataStreamMarshaller.java:571)
>  ~[activemq-client-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.openwire.v11.MessageIdMarshaller.looseUnmarshal(MessageIdMarshaller.java:122)
>  ~[activemq-client-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.openwire.OpenWireFormat.looseUnmarshalNestedObject(OpenWireFormat.java:473)
>  ~[activemq-client-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.openwire.v11.BaseDataStreamMarshaller.looseUnmarsalNestedObject(BaseDataStreamMarshaller.java:466)
>  ~[activemq-client-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.openwire.v11.MessageMarshaller.looseUnmarshal(MessageMarshaller.java:220)
>  ~[activemq-client-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.openwire.v11.ActiveMQMessageMarshaller.looseUnmarshal(ActiveMQMessageMarshaller.java:101)
>  ~[activemq-client-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.openwire.v11.ActiveMQObjectMessageMarshaller.looseUnmarshal(ActiveMQObjectMessageMarshaller.java:101)
>  ~[activemq-client-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireFormat.java:366)
>  ~[activemq-client-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:200)
>  ~[activemq-client-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.getLastMessageBrokerSequenceId(JDBCPersistenceAdapter.java:266)
>  ~[activemq-jdbc-store-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.broker.region.DestinationFactoryImpl.getLastMessageBrokerSequenceId(DestinationFactoryImpl.java:147)
>  ~[activemq-broker-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.broker.region.RegionBroker.<init>(RegionBroker.java:130) 
> ~[activemq-broker-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.broker.jmx.ManagedRegionBroker.<init>(ManagedRegionBroker.java:112)
>  ~[activemq-broker-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.broker.BrokerService.createRegionBroker(BrokerService.java:2297)
>  ~[activemq-broker-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.broker.BrokerService.createRegionBroker(BrokerService.java:2290)
>  ~[activemq-broker-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.broker.BrokerService.createBroker(BrokerService.java:2247)
>  ~[activemq-broker-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.broker.BrokerService.getBroker(BrokerService.java:981) 
> ~[activemq-broker-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.broker.BrokerService.getAdminConnectionContext(BrokerService.java:2518)
>  ~[activemq-broker-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.broker.BrokerService.startVirtualConsumerDestinations(BrokerService.java:2657)
>  ~[activemq-broker-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.broker.BrokerService.startDestinations(BrokerService.java:2509)
>  ~[activemq-broker-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.broker.BrokerService.doStartBroker(BrokerService.java:692)
>  ~[activemq-broker-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.broker.BrokerService.startBroker(BrokerService.java:684) 
> ~[activemq-broker-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.broker.BrokerService.start(BrokerService.java:605) 
> ~[activemq-broker-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:73)
>  [activemq-spring-5.12.0.jar:5.12.0] 
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
> ~[na:1.7.0_75] 
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
> ~[na:1.7.0_75] 
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  ~[na:1.7.0_75] 
>         at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_75] 
>         at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1640)
>  [spring-beans-3.2.11.RELEASE.jar:3.2.11.RELEASE] 
>         at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1581)
>  [spring-beans-3.2.11.RELEASE.jar:3.2.11.RELEASE] 
>         at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1511)
>  [spring-beans-3.2.11.RELEASE.jar:3.2.11.RELEASE] 
>         at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
>  [spring-beans-3.2.11.RELEASE.jar:3.2.11.RELEASE] 
>         at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
>  [spring-beans-3.2.11.RELEASE.jar:3.2.11.RELEASE] 
>         at 
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
>  [spring-beans-3.2.11.RELEASE.jar:3.2.11.RELEASE] 
>         at 
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
>  [spring-beans-3.2.11.RELEASE.jar:3.2.11.RELEASE] 
>         at 
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
>  [spring-beans-3.2.11.RELEASE.jar:3.2.11.RELEASE] 
>         at 
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:191)
>  [spring-beans-3.2.11.RELEASE.jar:3.2.11.RELEASE] 
>         at 
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:636)
>  [spring-beans-3.2.11.RELEASE.jar:3.2.11.RELEASE] 
>         at 
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:934)
>  [spring-context-3.2.11.RELEASE.jar:3.2.11.RELEASE] 
>         at 
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
>  [spring-context-3.2.11.RELEASE.jar:3.2.11.RELEASE] 
>         at 
> org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:64)
>  [xbean-spring-3.18.jar:3.18] 
>         at 
> org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:52)
>  [xbean-spring-3.18.jar:3.18] 
>         at 
> org.apache.activemq.xbean.XBeanBrokerFactory$1.<init>(XBeanBrokerFactory.java:104)
>  [activemq-spring-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext(XBeanBrokerFactory.java:104)
>  [activemq-spring-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java:67)
>  [activemq-spring-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:71) 
> [activemq-broker-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:54) 
> [activemq-broker-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:87)
>  [activemq-console-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:62)
>  [activemq-console-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:154)
>  [activemq-console-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:62)
>  [activemq-console-5.12.0.jar:5.12.0] 
>         at 
> org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:104) 
> [activemq-console-5.12.0.jar:5.12.0] 
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
> ~[na:1.7.0_75] 
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
> ~[na:1.7.0_75] 
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  ~[na:1.7.0_75] 
>         at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_75] 
>         at org.apache.activemq.console.Main.runTaskClass(Main.java:262) 
> [activemq.jar:5.12.0] 
>         at org.apache.activemq.console.Main.main(Main.java:115) 
> [activemq.jar:5.12.0] 
> 2015-09-12 12:05:45,323 INFO  o.a.activemq.broker.BrokerService - Apache 
> ActiveMQ 5.12.0 (eda2e5a4c4d0, null) is shutting down 
> 2015-09-12 12:05:45,324 INFO  o.a.a.broker.TransportConnector - Connector 
> openwire stopped 
> See also: 
> http://activemq.2283324.n4.nabble.com/ActiveMQ-exits-on-startup-with-UTFDataFormatException-bad-string-tc4701955.html



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to