JMS reference binding always works even if destination throws exception in FSW 6

Solution Verified - Updated -

Issue

  • In a SwitchYard application, I have this Camel route:
from("switchyard://SampleService")
  .doTry()
    .log("Received message for 'SampleService' : ${body}")
    .to("switchyard://JmsQueueReference")
    .log("BODY ======> ${body}")
    [...]
  • The binding to "JmsQueueReference" always works, even if the JMS queue associated with the binding does not exist in JBoss EAP.
  • The reference binding has the following Java interface that has IN_ONLY MEP:
public interface QueueReference {
    void process(Transaction transaction);
}
  • When deploying/using to send messages to SwitchYard application's Composite Reference with JMS binding (with a non-existing queue name) or the Camel binding with JMS URI , the JMS exception is ignored by SwitchYard. When using Camel routes (i.e. no JMS binding), this works as expected.

  • When using SwitchYard endpoint with JMS binding (with a non-existing queue name) the JMS exception is ignored. When using Camel endpoint (no SwitchYard JMS binding), this works as expected.

  • If we use inOnly and not InOut for a method in a reference that uses a jpa-binding, jpa exceptions are not propagated back to the implementation for a component.

Environment

  • Red Hat JBoss Fuse Service Works (FSW)
    • 6.0.0

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.