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

Colin Morris commented on AMQ-5995:
-----------------------------------

It's baffling that this issue is considered closed. As the comment of 20/Dec/15 
points out, upgrades should be seamless. I also agree that to maintain 
compatibility, the implementation should be able to read older versions of 
OpenWire. Otherwise, where is the path to an upgrade in a production 
environment?

I support the belief that this issue should be re-opened and addressed.

> 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