You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Thomas Diesler (Jira)" <ji...@apache.org> on 2020/06/09 05:29:00 UTC

[jira] [Updated] (CAMEL-15165) DirectConsumer not available any more

     [ https://issues.apache.org/jira/browse/CAMEL-15165?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Diesler updated CAMEL-15165:
-----------------------------------
    Description: 
Code like [this|https://github.com/wildfly-extras/wildfly-camel/blob/master/itests/standalone/basic/src/test/java/org/wildfly/camel/test/converter/CustomConverterTest.java#L56] used to work with 3.1.0, but fails with 3.3.0

{code}
        CamelContext camelctx = new DefaultCamelContext(false);
        camelctx.setLoadTypeConverters(true);
        camelctx.init();
        
        camelctx.addRoutes(new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                from("direct:start").convertBodyTo(Map.class);
            }
        });

        camelctx.start();
        try {
            ProducerTemplate producer = camelctx.createProducerTemplate();
            Map<?, ?> result = producer.requestBody("direct:start", new Customer("John", "Doe"), Map.class);
            Assert.assertEquals("{firstName=John, lastName=Doe}", result.toString());
        } finally {
            camelctx.close();
        }
{code}

{code}
Caused by: org.apache.camel.component.direct.DirectConsumerNotAvailableException: No consumers available on endpoint: direct://start. Exchange[]
	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:59)
	at org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:212)
	at org.apache.camel.processor.SharedCamelInternalProcessor$1.process(SharedCamelInternalProcessor.java:110)
	at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
	at org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:107)
	at org.apache.camel.impl.engine.DefaultProducerCache.send(DefaultProducerCache.java:185)
	at org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:176)
	at org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:172)
	at org.apache.camel.impl.engine.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:390)
	... 150 more
{code}

it seems to have to do with the use of ...

{code}
        camelctx.setLoadTypeConverters(true);
        camelctx.init();
{code}

Is this an intentional change that requires code migration?

  was:
Code like like [this|https://github.com/wildfly-extras/wildfly-camel/blob/master/itests/standalone/basic/src/test/java/org/wildfly/camel/test/converter/CustomConverterTest.java#L56] used to work with 3.1.0, but fails with 3.3.0

{code}
        CamelContext camelctx = new DefaultCamelContext(false);
        camelctx.setLoadTypeConverters(true);
        camelctx.init();
        
        camelctx.addRoutes(new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                from("direct:start").convertBodyTo(Map.class);
            }
        });

        camelctx.start();
        try {
            ProducerTemplate producer = camelctx.createProducerTemplate();
            Map<?, ?> result = producer.requestBody("direct:start", new Customer("John", "Doe"), Map.class);
            Assert.assertEquals("{firstName=John, lastName=Doe}", result.toString());
        } finally {
            camelctx.close();
        }
{code}

{code}
Caused by: org.apache.camel.component.direct.DirectConsumerNotAvailableException: No consumers available on endpoint: direct://start. Exchange[]
	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:59)
	at org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:212)
	at org.apache.camel.processor.SharedCamelInternalProcessor$1.process(SharedCamelInternalProcessor.java:110)
	at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
	at org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:107)
	at org.apache.camel.impl.engine.DefaultProducerCache.send(DefaultProducerCache.java:185)
	at org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:176)
	at org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:172)
	at org.apache.camel.impl.engine.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:390)
	... 150 more
{code}

it seems to have to do with the use of ...

{code}
        camelctx.setLoadTypeConverters(true);
        camelctx.init();
{code}

Is this an intentional change that requires code migration?


> DirectConsumer not available any more
> -------------------------------------
>
>                 Key: CAMEL-15165
>                 URL: https://issues.apache.org/jira/browse/CAMEL-15165
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 3.3.0
>            Reporter: Thomas Diesler
>            Priority: Major
>             Fix For: 3.4.0
>
>
> Code like [this|https://github.com/wildfly-extras/wildfly-camel/blob/master/itests/standalone/basic/src/test/java/org/wildfly/camel/test/converter/CustomConverterTest.java#L56] used to work with 3.1.0, but fails with 3.3.0
> {code}
>         CamelContext camelctx = new DefaultCamelContext(false);
>         camelctx.setLoadTypeConverters(true);
>         camelctx.init();
>         
>         camelctx.addRoutes(new RouteBuilder() {
>             @Override
>             public void configure() throws Exception {
>                 from("direct:start").convertBodyTo(Map.class);
>             }
>         });
>         camelctx.start();
>         try {
>             ProducerTemplate producer = camelctx.createProducerTemplate();
>             Map<?, ?> result = producer.requestBody("direct:start", new Customer("John", "Doe"), Map.class);
>             Assert.assertEquals("{firstName=John, lastName=Doe}", result.toString());
>         } finally {
>             camelctx.close();
>         }
> {code}
> {code}
> Caused by: org.apache.camel.component.direct.DirectConsumerNotAvailableException: No consumers available on endpoint: direct://start. Exchange[]
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:59)
> 	at org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:212)
> 	at org.apache.camel.processor.SharedCamelInternalProcessor$1.process(SharedCamelInternalProcessor.java:110)
> 	at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
> 	at org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:107)
> 	at org.apache.camel.impl.engine.DefaultProducerCache.send(DefaultProducerCache.java:185)
> 	at org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:176)
> 	at org.apache.camel.impl.engine.DefaultProducerTemplate.send(DefaultProducerTemplate.java:172)
> 	at org.apache.camel.impl.engine.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:390)
> 	... 150 more
> {code}
> it seems to have to do with the use of ...
> {code}
>         camelctx.setLoadTypeConverters(true);
>         camelctx.init();
> {code}
> Is this an intentional change that requires code migration?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)