Repository: cxf Updated Branches: refs/heads/master 4be704469 -> 1387abab6
[CXF-7442] Throwing InternalServerErrorException Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/1387abab Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/1387abab Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/1387abab Branch: refs/heads/master Commit: 1387abab66da34304d3773d5b8cccc5e5a81303b Parents: 4be7044 Author: Sergey Beryozkin <sberyoz...@gmail.com> Authored: Tue Jul 11 18:03:57 2017 +0100 Committer: Sergey Beryozkin <sberyoz...@gmail.com> Committed: Tue Jul 11 18:03:57 2017 +0100 ---------------------------------------------------------------------- .../main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java | 7 ++++++- .../java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java | 6 +++--- 2 files changed, 9 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/1387abab/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java ---------------------------------------------------------------------- diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java index ff82da4..550bed5 100644 --- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java +++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java @@ -497,7 +497,12 @@ public final class InjectionUtils { reportServerError("WRONG_PARAMETER_TYPE", pClass.getName()); } - return pClass.cast(result); + try { + return pClass.cast(result); + } catch (ClassCastException ex) { + reportServerError("WRONG_PARAMETER_TYPE", pClass.getName()); + return null; + } } private static RuntimeException createParamConversionException(ParameterType pType, Exception ex) { http://git-wip-us.apache.org/repos/asf/cxf/blob/1387abab/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java ---------------------------------------------------------------------- diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java index 198f4fb..cc9ea7c 100644 --- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java +++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java @@ -35,6 +35,7 @@ import java.util.SortedSet; import java.util.TreeSet; import javax.validation.constraints.NotNull; +import javax.ws.rs.InternalServerErrorException; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Application; import javax.ws.rs.core.MultivaluedMap; @@ -42,6 +43,7 @@ import javax.xml.bind.annotation.adapters.XmlAdapter; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import com.migesok.jaxb.adapter.javatime.LocalDateXmlAdapter; + import org.apache.cxf.endpoint.Endpoint; import org.apache.cxf.jaxrs.model.ParameterType; import org.apache.cxf.jaxrs.provider.ProviderFactory; @@ -53,7 +55,6 @@ import org.apache.cxf.message.MessageImpl; import org.easymock.EasyMock; import org.junit.Assert; -import org.junit.Ignore; import org.junit.Test; public class InjectionUtilsTest extends Assert { @@ -183,8 +184,7 @@ public class InjectionUtilsTest extends Assert { assertEquals(String.class, list.getActualTypeArguments()[0]); } - @Ignore("CXF-7442") - @Test + @Test(expected = InternalServerErrorException.class) public void testJsr310DateExceptionHandling() { Field field = CustomerDetailsWithAdapter.class.getDeclaredFields()[0]; Annotation[] paramAnns = field.getDeclaredAnnotations();