Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-13536

StackOverflow when using bean(this)

    XMLWordPrintableJSON

Details

    • Unknown

    Description

      This testcase

      import org.apache.camel.CamelContext;
      import org.apache.camel.Exchange;
      import org.apache.camel.RoutesBuilder;
      import org.apache.camel.builder.AdviceWithRouteBuilder;
      import org.apache.camel.builder.RouteBuilder;
      import org.apache.camel.component.mock.MockEndpoint;
      import org.apache.camel.test.junit4.CamelTestSupport;
      import org.junit.Test;
      
      public class MyRouteTest extends CamelTestSupport {
      
      private static final String ROUTE_ID = "mytest";
      
      @Override
      protected RoutesBuilder createRouteBuilder() throws Exception {
        return new RouteBuilder() {
      
          @Override
          public void configure() throws Exception {
            from("direct:mytest")
            .id(ROUTE_ID)
            .bean(this, "hello", false) // <- here is the problem
            .to("stream:out");
          }
      
          public void hello(final Exchange exchange) {
          }
        };
      }
      
      @Override
      public void setUp() throws Exception {
        super.setUp();
        final CamelContext camelContext = context();
        camelContext.getRouteDefinition(ROUTE_ID)
          .adviceWith(camelContext, new AdviceWithRouteBuilder() {
          @Override
          public void configure() throws Exception {
            weaveAddLast().to("mock:extract");
          }
        });
      }
      
      @Override
      public boolean isUseAdviceWith() {
        return true;
      }
      
      @Test
      public void shouldFire() throws InterruptedException {
        // given
        final MockEndpoint myMock = getMockEndpoint("mock:extract");
      
        myMock.expectedMessageCount(1);
      
        // when
        template.sendBody("direct:mytest", "test");
      
        // then
        myMock.assertIsSatisfied();
      }
      }
      

      Throws

      java.lang.StackOverflowError
      at java.util.AbstractCollection.toString(Unknown Source)
      at java.lang.String.valueOf(Unknown Source)
      at java.lang.StringBuilder.append(Unknown Source)
      at org.apache.camel.model.RoutesDefinition.toString(RoutesDefinition.java:64)
      at org.apache.camel.builder.RouteBuilder.toString(RouteBuilder.java:74)
      at org.apache.camel.model.BeanDefinition.description(BeanDefinition.java:89)
      at org.apache.camel.model.BeanDefinition.toString(BeanDefinition.java:78)
      at java.lang.String.valueOf(Unknown Source)
      

       

      Attachments

        Activity

          People

            davsclaus Claus Ibsen
            eximius Kamil
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: