cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Parwiz Rezai (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CXF-4912) cxf rest client always picks the first ResponseExceptionMapper for a method with different exception throws
Date Fri, 22 Mar 2013 06:25:14 GMT

    [ https://issues.apache.org/jira/browse/CXF-4912?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13609984#comment-13609984
] 

Parwiz Rezai commented on CXF-4912:
-----------------------------------

if you change the order of throws from throws Exception2 , Exception1 to throws Exception1,
Exception2
then it will find the mapper for exception 1 which works..
but suppose you are throwing Exception2 also in this method in some other part/branch.. now
again it will go 
to Exception1ResponMapper... it always goes by the first type of exception delcared
in the method signature.. I think this needs to be expanded to do a type match on the exception
type first and then see if there is a mapper for that type (or it one of its parents).
                
> cxf rest client always picks the first ResponseExceptionMapper for a method with different
exception throws
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-4912
>                 URL: https://issues.apache.org/jira/browse/CXF-4912
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 2.7.3
>         Environment: tomcat 6.33, java 1.6_34, spring 3.2.1.RELEASE.
>            Reporter: Parwiz Rezai
>
> I have two differnt exceptions 
> class Exception1 extends Exception {
> // blah blah
> }
> class Exception2 extends Exception {
> // blah blah
> }
> public class Exception1ResponseMapper implements ResponseExceptionMapper<Exception1>
{}
> public class Exception2ResponseMapper implements ResponseExceptionMapper<Exception2>
{}
> so one mapper does something different than the other one.
> now my service method is 
> public interface MyService {
> SomeCoolObject myMethod() throws Exception2, Exception1;
> }
> public class MyServiceImpl implements MyService {
> public SomeCoolObject myMethod() throws Exception2, Exception1 {
>   throw new Exception1("hey this exception will still go exception 2 mapper.. why?");
> }
> }
> The selection for response mapper will always pick the first
> exception listed and invoke the mapper for that guy.. it will never
> invoke Exception1ResponseMapper  even though our exception is of type
> Exception1.. 
> I think the code needs to lookup the mapper based on type as well
> instead of generic first mapper found for that service.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message