[ https://issues.apache.org/activemq/browse/CAMEL-3025?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen reassigned CAMEL-3025: ---------------------------------- Assignee: Claus Ibsen > ProxyHelper bean proxy should unwrap "cause" from RuntimeCamelException if > the cause's type is declared thrown by the proxied method > ------------------------------------------------------------------------------------------------------------------------------------ > > Key: CAMEL-3025 > URL: https://issues.apache.org/activemq/browse/CAMEL-3025 > Project: Apache Camel > Issue Type: Improvement > Components: bean-integration > Reporter: Jim Newsham > Assignee: Claus Ibsen > Fix For: 2.5.0 > > > ProxyHelper allows one to create a local proxy which invokes a method call on > a remote bean by marshalling the request into a message object, sending the > message, waiting for the result, unmarshalling the result, and returning the > result to the caller. On the remote end, a bean invocation must be set up to > handle the invocation. Consider the following service bean and proxy usage: > {code} > public interface MyService { > public Result method() throws MyApplicationException; > } > MyService myService = ProxyHelper.createProxy(endpoint, MyService.class); > try { > Result = myService.method(); > } > catch(MyApplicationException mae) { > ... > } > {code} > MyApplicationException is an application-level exception which should be > handled by the caller. The user of the proxy expects that if the remote > invocation of MyService.method() fails with a MyApplicationException, that > the same exception should be thrown by the proxy instance. Instead, the > proxy instance is currently throwing a CamelRuntimeException which wraps the > original MyApplicationException. I propose that the proxy invocation handler > used by ProxyHelper should check if the wrapped "cause" is of one of the > declared exception types of the method being proxied, and if so, to unwrap > and throw that exception instead of the CamelRuntimeException. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.