cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "n0rad (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CXF-4496) find of ResponseExceptionMapper do not handle runtime exceptions
Date Wed, 26 Sep 2012 21:59:09 GMT

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

n0rad commented on CXF-4496:
----------------------------

If the user has registered a ResponseExceptionMapper for this RuntimeException class (or super),
it will use it (exactly the same system as checked exception)

If the user has not registered a ResponseExceptionMapper for this class it will not found
it, will return null and the caller function that is checkResponse() will build the ServerWebApplicationException.

It doesn't change the way its actually working until the user register an exceptionMapper
for runtimes.

I don't see the point.

                
> find of ResponseExceptionMapper do not handle runtime exceptions
> ----------------------------------------------------------------
>
>                 Key: CXF-4496
>                 URL: https://issues.apache.org/jira/browse/CXF-4496
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 2.6.2
>            Reporter: n0rad
>            Priority: Minor
>
> In org.apache.cxf.jaxrs.client.ClientProxyImpl.findExceptionMapper(Method, Message)
> The responseExceptionMapper is selected based on exception defined in the resource method
signature but this method may have thrown a RuntimeException :
> {code:java} 
> @Path("/")
> public interface RestMcuBoardResource {
>     @GET
>     public RestMcuBoard getBoard();
> }
> {code} 
> does not work where this one work
> {code:java} 
> @Path("/")
> public interface RestMcuBoardResource {
>     @GET
>     public RestMcuBoard getBoard() throws runtimeException;
> }
> {code}
> a fix could be :
> {code:java} 
>     private static ResponseExceptionMapper<?> findExceptionMapper(Method m, Message
message) {
>         ProviderFactory pf = ProviderFactory.getInstance(message);
>         for (Class<?> exType : m.getExceptionTypes()) {
>             ResponseExceptionMapper<?> mapper = pf.createResponseExceptionMapper(exType);
>             if (mapper != null) {
>                 return mapper;
>             }
>         }
> +        return pf.createResponseExceptionMapper(RuntimeException.class);
> -        return null; 
>     }
> {code} 

--
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