Author: sergeyb Date: Tue Dec 3 17:36:23 2013 New Revision: 1547493 URL: http://svn.apache.org/r1547493 Log: Merged revisions 1547487 via svnmerge from https://svn.apache.org/repos/asf/cxf/branches/2.7.x-fixes
................ r1547487 | sergeyb | 2013-12-03 17:20:54 +0000 (Tue, 03 Dec 2013) | 9 lines Merged revisions 1547482 via svnmerge from https://svn.apache.org/repos/asf/cxf/trunk ........ r1547482 | sergeyb | 2013-12-03 17:16:09 +0000 (Tue, 03 Dec 2013) | 1 line [CXF-5433] Fixing the issue with mapping Multipart types to primitive values ........ ................ Modified: cxf/branches/2.6.x-fixes/ (props changed) cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/MultipartProvider.java cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/MultipartStore.java Propchange: cxf/branches/2.6.x-fixes/ ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Tue Dec 3 17:36:23 2013 @@ -0,0 +1,2 @@ +/cxf/branches/2.7.x-fixes:1547487 +/cxf/trunk:1547482 Propchange: cxf/branches/2.6.x-fixes/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/MultipartProvider.java URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/MultipartProvider.java?rev=1547493&r1=1547492&r2=1547493&view=diff ============================================================================== --- cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/MultipartProvider.java (original) +++ cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/MultipartProvider.java Tue Dec 3 17:36:23 2013 @@ -54,6 +54,7 @@ import org.apache.cxf.attachment.Attachm import org.apache.cxf.attachment.ByteDataSource; import org.apache.cxf.common.i18n.BundleUtils; import org.apache.cxf.common.logging.LogUtils; +import org.apache.cxf.common.util.PrimitiveUtils; import org.apache.cxf.helpers.CastUtils; import org.apache.cxf.jaxrs.ext.MessageContext; import org.apache.cxf.jaxrs.ext.form.Form; @@ -176,9 +177,13 @@ public class MultipartProvider extends A if (id != null && !id.required()) { /* - * If user asked for a null, give them a null. + * Return default value for a missing optional part */ - return null; + Object defaultValue = null; + if (c.isPrimitive()) { + defaultValue = PrimitiveUtils.read((Class<?>)c == boolean.class ? "false" : "0", c); + } + return defaultValue; } throw new WebApplicationException(400); Modified: cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java?rev=1547493&r1=1547492&r2=1547493&view=diff ============================================================================== --- cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java (original) +++ cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookStore.java Tue Dec 3 17:36:23 2013 @@ -606,6 +606,13 @@ public class BookStore { return doGetBook(id); } + @GET + @Path("/books/query/default") + @Produces("application/xml") + public Book getBook(@QueryParam("bookId") long id) throws BookNotFoundFault { + return books.get(id + 123); + } + @GET Modified: cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java?rev=1547493&r1=1547492&r2=1547493&view=diff ============================================================================== --- cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java (original) +++ cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSClientServerBookTest.java Tue Dec 3 17:36:23 2013 @@ -87,6 +87,14 @@ public class JAXRSClientServerBookTest e } @Test + public void testGetBookQueryDefault() throws Exception { + String address = "http://localhost:" + PORT + "/bookstore/books/query/default"; + WebClient wc = WebClient.create(address); + Book book = wc.get(Book.class); + assertEquals(123L, book.getId()); + } + + @Test public void testGetChapterFromSelectedBook() { String address = "http://localhost:" + PORT + "/bookstore/books/id=le=123/chapter/1"; doTestGetChapterFromSelectedBook(address); Modified: cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java?rev=1547493&r1=1547492&r2=1547493&view=diff ============================================================================== --- cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java (original) +++ cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java Tue Dec 3 17:36:23 2013 @@ -440,6 +440,19 @@ public class JAXRSMultipartTest extends } @Test + public void testNullableParamsPrimitive() throws Exception { + String address = "http://localhost:" + PORT + "/bookstore/books/testnullpartprimitive"; + WebClient client = WebClient.create(address); + client.type("multipart/form-data").accept("text/plain"); + List<Attachment> atts = new LinkedList<Attachment>(); + atts.add(new Attachment("somepart", "text/plain", "hello there")); + Response r = client.postCollection(atts, Attachment.class); + assertEquals(Response.Status.OK.getStatusCode(), r.getStatus()); + assertEquals((Integer)0, Integer.valueOf(IOUtils.readStringFromStream((InputStream)r.getEntity()))); + } + + + @Test public void testAddBookJaxbJsonImageWebClientMixed() throws Exception { Map<String, String> params = doTestAddBookJaxbJsonImageWebClient("multipart/mixed"); Modified: cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/MultipartStore.java URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/MultipartStore.java?rev=1547493&r1=1547492&r2=1547493&view=diff ============================================================================== --- cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/MultipartStore.java (original) +++ cxf/branches/2.6.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/MultipartStore.java Tue Dec 3 17:36:23 2013 @@ -160,6 +160,14 @@ public class MultipartStore { } @POST + @Path("/books/testnullpartprimitive") + @Consumes("multipart/form-data") + @Produces("text/plain") + public int testNullPart2(@Multipart(value = "someid", required = false) int value) { + return value; + } + + @POST @Path("/books/testnullpartFormParam") @Consumes("multipart/form-data") @Produces("text/plain")
