Tomohisa Igarashi created CAMEL-7722:
----------------------------------------
Summary: from("mqtt:...") route can't load a file in the
application bundle on karaf
Key: CAMEL-7722
URL: https://issues.apache.org/jira/browse/CAMEL-7722
Project: Camel
Issue Type: Bug
Components: camel-mqtt
Reporter: Tomohisa Igarashi
Loading a file in the application bundle through TCCL fails if the route starts
from MQTT consumer while it succeeds if it starts from file consumer.
Apparently MQTT consumer executing thread should be using
BundleDelegatingClassLoader like file consumer, but it's using
sun.misc.Launcher$AppClassLoader.
{code}
2014-08-19 16:34:14,035 | INFO | tmp/myfileinput/ | MyBean
| apache.camel.example.mqtt.MyBean 25 | 124 -
org.apache.camel.camel-example-mqtt - 2.12.2 | ##### #####
META-INF/myresource.txt>>>foobar ##### #####
ClassLoader=BundleDelegatingClassLoader(org.apache.camel.camel-example-mqtt
[124])
2014-08-19 16:34:14,075 | ERROR | spatch-DEFAULT-2 | DefaultErrorHandler
| rg.apache.camel.util.CamelLogger 215 | 116 -
org.apache.camel.camel-core - 2.12.2 | Failed delivery for (MessageId:
ID-tomo-t530-47023-1408432602776-3-7 on ExchangeId:
ID-tomo-t530-47023-1408432602776-3-8). Exhausted after delivery attempt: 1
caught: java.io.FileNotFoundException: ##### ##### META-INF/myresource.txt not
found ##### ##### ClassLoader=sun.misc.Launcher$AppClassLoader@29d22104
Message History
---------------------------------------------------------------------------------------------------------------------------------------
RouteId ProcessorId Processor
Elapsed (ms)
[route4 ] [route4 ]
[mqtt://input?password=xxxxxx&subscribeTopicName=testTopicIn&userName=karaf
] [ 3]
[route4 ] [removeProperty4 ]
[removeProperty[MQTTTopicPropertyName]
] [ 0]
[route4 ] [bean4 ] [bean[ref:myBean]
] [ 0]
Exchange
---------------------------------------------------------------------------------------------------------------------------------------
Exchange[
Id ID-tomo-t530-47023-1408432602776-3-8
ExchangePattern InOnly
Headers {breadcrumbId=ID-tomo-t530-47023-1408432602776-3-7,
CamelRedelivered=false, CamelRedeliveryCounter=0}
BodyType byte[]
Body test mqtt
]
Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
java.io.FileNotFoundException: ##### ##### META-INF/myresource.txt not found
##### ##### ClassLoader=sun.misc.Launcher$AppClassLoader@29d22104
at org.apache.camel.example.mqtt.MyBean.process(MyBean.java:20)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)[:1.7.0_65]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_65]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_65]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_65]
at
org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:407)[116:org.apache.camel.camel-core:2.12.2]
at
org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:278)[116:org.apache.camel.camel-core:2.12.2]
at
org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:251)[116:org.apache.camel.camel-core:2.12.2]
at
org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:166)[116:org.apache.camel.camel-core:2.12.2]
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)[116:org.apache.camel.camel-core:2.12.2]
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)[116:org.apache.camel.camel-core:2.12.2]
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[116:org.apache.camel.camel-core:2.12.2]
at
org.apache.camel.processor.Pipeline.process(Pipeline.java:118)[116:org.apache.camel.camel-core:2.12.2]
at
org.apache.camel.processor.Pipeline.process(Pipeline.java:80)[116:org.apache.camel.camel-core:2.12.2]
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[116:org.apache.camel.camel-core:2.12.2]
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:105)[116:org.apache.camel.camel-core:2.12.2]
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:87)[116:org.apache.camel.camel-core:2.12.2]
at
org.apache.camel.component.mqtt.MQTTConsumer.processExchange(MQTTConsumer.java:46)[122:org.apache.camel.camel-mqtt:2.12.2]
at
org.apache.camel.component.mqtt.MQTTEndpoint$1.onPublish(MQTTEndpoint.java:90)[122:org.apache.camel.camel-mqtt:2.12.2]
at
org.fusesource.mqtt.client.CallbackConnection.toReceiver(CallbackConnection.java:815)[118:org.fusesource.mqtt-client.mqtt-client:1.6]
at
org.fusesource.mqtt.client.CallbackConnection.processFrame(CallbackConnection.java:732)[118:org.fusesource.mqtt-client.mqtt-client:1.6]
at
org.fusesource.mqtt.client.CallbackConnection.access$1500(CallbackConnection.java:51)[118:org.fusesource.mqtt-client.mqtt-client:1.6]
at
org.fusesource.mqtt.client.CallbackConnection$6.onTransportCommand(CallbackConnection.java:392)[118:org.fusesource.mqtt-client.mqtt-client:1.6]
at
org.fusesource.hawtdispatch.transport.TcpTransport.drainInbound(TcpTransport.java:664)[120:org.fusesource.hawtdispatch.hawtdispatch-transport:1.18.0]
at
org.fusesource.hawtdispatch.transport.TcpTransport$6.run(TcpTransport.java:543)[120:org.fusesource.hawtdispatch.hawtdispatch-transport:1.18.0]
at
org.fusesource.hawtdispatch.internal.NioDispatchSource$3.run(NioDispatchSource.java:209)[119:org.fusesource.hawtdispatch.hawtdispatch:1.18.0]
at
org.fusesource.hawtdispatch.internal.SerialDispatchQueue.run(SerialDispatchQueue.java:100)[119:org.fusesource.hawtdispatch.hawtdispatch:1.18.0]
at
org.fusesource.hawtdispatch.internal.pool.SimpleThread.run(SimpleThread.java:77)[119:org.fusesource.hawtdispatch.hawtdispatch:1.18.0]
{code}
I'll attach a reproducer soon.
--
This message was sent by Atlassian JIRA
(v6.2#6252)