Description
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 :
@Path("/") public interface RestMcuBoardResource { @GET public RestMcuBoard getBoard(); }
does not work where this one work
@Path("/") public interface RestMcuBoardResource { @GET public RestMcuBoard getBoard() throws runtimeException; }
a fix could be :
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; }