You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Freeman Yue Fang (Jira)" <ji...@apache.org> on 2020/01/06 20:54:00 UTC
[jira] [Assigned] (CAMEL-14368) can't gracefully shutdown a
camel-undertow consumer endpoint
[ https://issues.apache.org/jira/browse/CAMEL-14368?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Freeman Yue Fang reassigned CAMEL-14368:
----------------------------------------
Assignee: Freeman Yue Fang
> can't gracefully shutdown a camel-undertow consumer endpoint
> ------------------------------------------------------------
>
> Key: CAMEL-14368
> URL: https://issues.apache.org/jira/browse/CAMEL-14368
> Project: Camel
> Issue Type: Bug
> Reporter: Freeman Yue Fang
> Assignee: Freeman Yue Fang
> Priority: Major
>
> For example if we have a camel-undertow consumer endpoint like
> {code}
> <route id="counter-route">
> <from uri="undertow:http://0.0.0.0:8080/srv/count"/>
> <process ref="counterProcessor"/>
> </route>
> {code}
> and the the counterProcessor is like
> {code}
> public class CounterProcessor implements Processor {
> private static final transient Logger LOG = LoggerFactory.getLogger(CounterProcessor.class);
> public void process(Exchange exchange) throws Exception {
> Long count = 0L;
> if (exchange.getIn().getHeader("count", Long.class) != null) {
> count = exchange.getIn().getHeader("count", Long.class);
> }
> String cid = exchange.getIn().getHeader("cid", String.class);
> Long delay = 0L;
> if (exchange.getIn().getHeader("delay", Long.class) != null) {
> delay = exchange.getIn().getHeader("delay", Long.class);
> }
> Long c = count + 1;
> LOG.info("count before delay {} {}", cid, c);
> Thread.sleep(delay == null ? 0 : delay);
> LOG.info("count after delay {} {}", cid, c);
> exchange.getOut().setBody(UuidBean.uuid() + " " + c);
> }
> }
> {code}
> If we send http request with url like
> {code}
> http://localhost:8080/srv/count?count=5&cid=42&delay=20000
> {code}
> This suppose to return in 20 sec. If we use "kill -15 process_id_camel_route", we should wait and see this camel route gracefully shutdown and let the flight exchange finish. But it's not this case now, while with camel-jetty, it works as expected.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)