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, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content