Exception thrown during command invocation contains nested XMLs result strings
------------------------------------------------------------------------------
Key: SM-347
URL: http://jira.activemq.org/jira//browse/SM-347
Project: ServiceMix
Type: Bug
Components: servicemix-core
Versions: 3.0
Reporter: Simone Bordet
When invoking AdminCommandsService.startComponent(), and the component start()
method throws an exception, the XML result string (defined by the JBI spec) is
nested, that is contains the XML twice and the second time is encoded, like for
example:
<jbi-task xmlns="http://java.sun.com/xml/ns/jbi/management-message"
version="1.0">
<jbi-task-result>
<frmwk-task-result>
<frmwk-task-result-details>
<task-result-details>
<task-id>startServiceAssembly</task-id>
<task-result>FAILED</task-result>
<message-type>ERROR</message-type>
<task-status-msg>
<msg-loc-info>
<loc-token/>
<loc-message>loanbroker</loc-message>
</msg-loc-info>
</task-status-msg>
<exception-info>
<nesting-level>1</nesting-level>
<loc-token/>
<loc-message><?xml version="1.0" encoding="UTF-8"?>
<jbi-task xmlns="http://java.sun.com/xml/ns/jbi/management-message"
version="1.0">
<jbi-task-result>
<frmwk-task-result>
<frmwk-task-result-details>
<task-result-details>
<task-id>start</task-id>
<task-result>FAILED</task-result>
<message-type>ERROR</message-type>
</task-result-details>
</frmwk-task-result-details>
</frmwk-task-result>
<component-task-result
xmlns="http://java.sun.com/xml/ns/jbi/management-message">
<component-name>servicemix-http</component-name>
<component-task-result-details>
<task-result-details>
<task-id>start</task-id>
<task-result>FAILED</task-result>
<message-type>ERROR</message-type>
<task-status-message>
<msg-loc-info>
<loc-token/>
<loc-message>Unable to start service unit</loc-message>
</msg-loc-info>
</task-status-message>
<exception-info>
<nesting-level>1</nesting-level>
<msg-loc-info>
<loc-token/>
<loc-message>An external endpoint
for service {urn:logicblaze:soa:loanbroker}LoanBrokerService and endpoint
loanbroker is already registered</loc-message>
<stack-trace><![CDATA[javax.jbi.JBIException: An external endpoint for
service {urn:logicblaze:soa:loanbroker}LoanBrokerService and endpoint
loanbroker is already registered
at
org.apache.servicemix.jbi.framework.EndpointRegistry.registerExternalEndpoint(EndpointRegistry.java:319)
at
org.apache.servicemix.jbi.framework.Registry.registerExternalEndpoint(Registry.java:238)
at
org.apache.servicemix.jbi.framework.ComponentContextImpl.registerExternalEndpoint(ComponentContextImpl.java:324)
at
org.apache.servicemix.http.HttpEndpoint.activate(HttpEndpoint.java:63)
at org.apache.servicemix.common.ServiceUnit.start(ServiceUnit.java:45)
at
org.apache.servicemix.common.BaseServiceUnitManager.start(BaseServiceUnitManager.java:148)
at
org.apache.servicemix.jbi.framework.ServiceUnitLifeCycle.start(ServiceUnitLifeCycle.java:98)
at
org.apache.servicemix.jbi.framework.ServiceAssemblyLifeCycle.start(ServiceAssemblyLifeCycle.java:130)
at
org.apache.servicemix.jbi.framework.DeploymentService.start(DeploymentService.java:373)
at
org.apache.servicemix.jbi.framework.AdminCommandsService.startServiceAssembly(AdminCommandsService.java:202)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:216)
at
org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:162)
at
org.apache.servicemix.jbi.management.BaseStandardMBean.invoke(BaseStandardMBean.java:307)
at
com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:213)
at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815)
at
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
at
javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1408)
at
javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java:81)
at
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1245)
at
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1341)
at
javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:782)
at sun.reflect.GeneratedMethodAccessor66.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:595)
]]></stack-trace>
</msg-loc-info>
</exception-info>
</task-result-details>
</component-task-result-details>
</component-task-result>
</jbi-task-result>
</jbi-task>
</loc-message>
<stack-trace><![CDATA[java.lang.Exception: <?xml version="1.0"
encoding="UTF-8"?>
<jbi-task xmlns="http://java.sun.com/xml/ns/jbi/management-message"
version="1.0">
<jbi-task-result>
<frmwk-task-result>
<frmwk-task-result-details>
<task-result-details>
<task-id>start</task-id>
<task-result>FAILED</task-result>
<message-type>ERROR</message-type>
</task-result-details>
</frmwk-task-result-details>
</frmwk-task-result>
<component-task-result
xmlns="http://java.sun.com/xml/ns/jbi/management-message">
<component-name>servicemix-http</component-name>
<component-task-result-details>
<task-result-details>
<task-id>start</task-id>
<task-result>FAILED</task-result>
<message-type>ERROR</message-type>
<task-status-message>
<msg-loc-info>
<loc-token/>
<loc-message>Unable to start service unit</loc-message>
</msg-loc-info>
</task-status-message>
<exception-info>
<nesting-level>1</nesting-level>
<msg-loc-info>
<loc-token/>
<loc-message>An external endpoint for
service {urn:logicblaze:soa:loanbroker}LoanBrokerService and endpoint
loanbroker is already registered</loc-message>
<stack-trace><![CDATA[javax.jbi.JBIException: An external endpoint for service
{urn:logicblaze:soa:loanbroker}LoanBrokerService and endpoint loanbroker is
already registered
at
org.apache.servicemix.jbi.framework.EndpointRegistry.registerExternalEndpoint(EndpointRegistry.java:319)
at
org.apache.servicemix.jbi.framework.Registry.registerExternalEndpoint(Registry.java:238)
at
org.apache.servicemix.jbi.framework.ComponentContextImpl.registerExternalEndpoint(ComponentContextImpl.java:324)
at
org.apache.servicemix.http.HttpEndpoint.activate(HttpEndpoint.java:63)
at org.apache.servicemix.common.ServiceUnit.start(ServiceUnit.java:45)
at
org.apache.servicemix.common.BaseServiceUnitManager.start(BaseServiceUnitManager.java:148)
at
org.apache.servicemix.jbi.framework.ServiceUnitLifeCycle.start(ServiceUnitLifeCycle.java:98)
at
org.apache.servicemix.jbi.framework.ServiceAssemblyLifeCycle.start(ServiceAssemblyLifeCycle.java:130)
at
org.apache.servicemix.jbi.framework.DeploymentService.start(DeploymentService.java:373)
at
org.apache.servicemix.jbi.framework.AdminCommandsService.startServiceAssembly(AdminCommandsService.java:202)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:216)
at
org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:162)
at
org.apache.servicemix.jbi.management.BaseStandardMBean.invoke(BaseStandardMBean.java:307)
at
com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:213)
at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815)
at
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
at
javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1408)
at
javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java:81)
at
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1245)
at
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1341)
at
javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:782)
at sun.reflect.GeneratedMethodAccessor66.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:595)
]]]]><![CDATA[></stack-trace>
</msg-loc-info>
</exception-info>
</task-result-details>
</component-task-result-details>
</component-task-result>
</jbi-task-result>
</jbi-task>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.activemq.org/jira//secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira