Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-449

Camel doesn't return error while invoking jbi endpoint which doesn't exist, setting up a infinite loop on retry.

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 7.0.3, 7.1.1, jboss-fuse-6.0, M1
    • fuse-esb-7.0.2
    • None
    • None
    • % %

      The customer has supplied a test case that reproduces the error case reliably: for_red_hat_use_cases_sanitized.zip

      Note: when trying the fail case your ESB instance will lock up, requiring a kill -9.

      How to reproduce. Follow README.TXT to run app from for_red_hat_use_cases_sanitized.zip

      and invoke JMX (for example from jconsole):

      com.my.camel.beans:obj=JMXCamelInvoker
      invoke operation: invokeCamel with parameters "direct:dummy", "a", "<a/>
      you will get: OK response: <a/>

      invoke operation: invokeCamel with parameters "direct:goToNotExistingJBIEndpoint", "a", "<a/>
      you will get: OK response: <error>Error: java.lang.IllegalStateException: No endpoint, service or interface name specified for routing occurred in endpoint:https://my.namespace.com/GhostEndpoint/my during processing</error>
      what is correct behavior

      BUT

      invoke JMX
      com.my.jbi.beans:obj=JMXJBIInvoker
      invoke operation: sendAction with parameter "OTA_PingCamel" after 10 seconds (a timeout ) you will get: "Response didn't come" and the logs are constantly growing with:

      15:21:53,062 | INFO | rovider-thread-5 | camel | 119 - com.myproject.camel-endpoints - 1.0.0.SNAPSHOT | OTA_PingCamel route processing has started
      15:21:53,062 | INFO | rovider-thread-4 | camel | 119 - com.myproject.camel-endpoints - 1.0.0.SNAPSHOT | OTA_PingCamel route processing has started
      15:21:53,062 | INFO | rovider-thread-6 | camel | 119 - com.myproject.camel-endpoints - 1.0.0.SNAPSHOT | OTA_PingCamel route processing has started
      15:21:53,063 | INFO | rovider-thread-7 | camel | 119 - com.myproject.camel-endpoints - 1.0.0.SNAPSHOT | OTA_PingCamel route processing has started

      In conclusion:

      So having flow:
      Camel -> not exisiting JBI endpoint

      Invoking directly that Camel flow - everything works.
      Invoking Camel from JBI which point to not existing Camel flow - causes that Camel rerun the same flow endlessly.

      Enjoy!

      Forgot to say that it ends with: FuseESB:karaf@root> Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: GC overhead limit exceeded

            willem.jiang Willem Jiang (Inactive)
            jgoodyear_icbts_jira jamie goodyear (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: