Davy De Waele created CAMEL-7922:
------------------------------------
Summary: MQTT endpoint misses QoS > 0 messages due to startup
timing issue
Key: CAMEL-7922
URL: https://issues.apache.org/jira/browse/CAMEL-7922
Project: Camel
Issue Type: Bug
Components: camel-mqtt
Affects Versions: 2.14.0
Reporter: Davy De Waele
The FuseSource client can start receiving messages as a result of a topic
subscription BEFORE any consumers have been registered on the MQTT endpoint.
*Receiving a PUBLISH message*
Publish message are received without any consumers. Result : msg with QoS > 0
are never processed.
{noformat}
Daemon Thread [hawtdispatch-DEFAULT-3] (Suspended (breakpoint at line 815 in
CallbackConnection))
CallbackConnection.toReceiver(PUBLISH) line: 815
CallbackConnection.processFrame(MQTTFrame) line: 732
CallbackConnection.access$1500(CallbackConnection, MQTTFrame) line: 51
CallbackConnection$6.onTransportCommand(Object) line: 392
TcpTransport.drainInbound() line: 709
TcpTransport$6.run() line: 588
NioDispatchSource$3.run() line: 209
SerialDispatchQueue.run() line: 100
SimpleThread.run() line: 77
{noformat}
*No consumers registered yet*
Only when this finishes will Camel be able to process the messages.
{noformat}
Daemon Thread [localhost-startStop-1] (Suspended (breakpoint at line 164 in
MQTTEndpoint))
owns: SpringCamelContext (id=92)
owns: Object (id=143)
owns: StandardContext (id=144)
MQTTEndpoint.addConsumer(MQTTConsumer) line: 164
MQTTConsumer.doStart() line: 35
MQTTConsumer(ServiceSupport).start() line: 61
SpringCamelContext(DefaultCamelContext).startService(Service) line:
2158
SpringCamelContext(DefaultCamelContext).doStartOrResumeRouteConsumers(Map<Integer,DefaultRouteStartupOrder>,
boolean, boolean) line: 2452
SpringCamelContext(DefaultCamelContext).doStartRouteConsumers(Map<Integer,DefaultRouteStartupOrder>,
boolean) line: 2388
SpringCamelContext(DefaultCamelContext).safelyStartRouteServices(boolean,
boolean, boolean, boolean, Collection<RouteService>) line: 2318
SpringCamelContext(DefaultCamelContext).doStartOrResumeRoutes(Map<String,RouteService>,
boolean, boolean, boolean, boolean) line: 2091
SpringCamelContext(DefaultCamelContext).doStartCamel() line: 1951
SpringCamelContext(DefaultCamelContext).doStart() line: 1777
{noformat}
These messages will never be picked up untill camel is restarted.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)