Hi all

I upgraded from CXF 2.5.2 to 2.6.2 and this causes some of my
application unit tests to fail. The failing tests are all multipart posts.

The code snippet below worked with 2.5.2

            wc.path("/rest/packages/{packageName}/assets", pkgName).
                    type(MediaType.MULTIPART_FORM_DATA).
                    accept(MediaType.APPLICATION_JSON);
            Collection<Attachment> atts = new LinkedList<Attachment>();
            atts.add(new Attachment("asset", MediaType.APPLICATION_JSON,
a));
            atts.add(new Attachment("binary",
MediaType.APPLICATION_OCTET_STREAM, new
ByteArrayInputStream("empty".getBytes())));
            a2 = wc.postCollection(atts, Attachment.class, Asset.class);

In 2.6.2, this fails on the client before even invoking the request in
the postCollection() with the following stack trace (full stack at the end):

Caused by: org.apache.cxf.jaxrs.client.ClientWebApplicationException:
.Problem with writing the request message, class : class
java.util.ArrayList, ContentType : multipart/form-data.
    at
org.apache.cxf.jaxrs.client.AbstractClient.reportMessageHandlerProblem(AbstractClient.java:629)
~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
    at
org.apache.cxf.jaxrs.client.AbstractClient.writeBody(AbstractClient.java:396)
~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
    at
org.apache.cxf.jaxrs.client.WebClient$BodyWriter.handleMessage(WebClient.java:885)
~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
    ... 37 common frames omitted
Caused by: javax.ws.rs.WebApplicationException: null
    at
org.apache.cxf.jaxrs.provider.MultipartProvider.getHandlerForObject(MultipartProvider.java:384)
~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]

I have found related bugs https://issues.apache.org/jira/browse/CXF-4409
but according to Jira this should be fixed in 2.6.2. Any hints what
could be going wrong?

Thanks in advance.

CU, Joe

Full stack trace:

23:38:36.558 [ain] ERROR: ch.pyx.rules.drools.GuvnorAdaptor: Failed to create 
Guvnor asset {|||||| - |}
org.apache.cxf.jaxrs.client.ClientWebApplicationException: 
org.apache.cxf.jaxrs.client.ClientWebApplicationException: 
org.apache.cxf.interceptor.Fault: .Problem with writing the request message, 
class : class java.util.ArrayList, ContentType : multipart/form-data.
at 
org.apache.cxf.jaxrs.client.WebClient.doChainedInvocation(WebClient.java:807) 
~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:743) 
~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:717) 
~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
at org.apache.cxf.jaxrs.client.WebClient.postCollection(WebClient.java:407) 
~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
at ch.pyx.rules.drools.GuvnorAdaptor.createAsset(GuvnorAdaptor.java:302) 
~[classes/:na]
at 
ch.pyx.rules.sl.impl.GuvnorConnectorIntTest.testCreateAndDeleteAsset(GuvnorConnectorIntTest.java:242)
 [test-classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_25]
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
~[na:1.6.0_25]
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 ~[na:1.6.0_25]
at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_25]
at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
 [junit-4.8.2.jar:na]
at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
 [junit-4.8.2.jar:na]
at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
 [junit-4.8.2.jar:na]
at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
 [junit-4.8.2.jar:na]
at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) 
[junit-4.8.2.jar:na]
at 
org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
 [spring-test-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at 
org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83)
 [spring-test-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at 
org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
 [spring-test-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at 
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231)
 [spring-test-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
 [junit-4.8.2.jar:na]
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) 
[junit-4.8.2.jar:na]
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) 
[junit-4.8.2.jar:na]
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) 
[junit-4.8.2.jar:na]
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) 
[junit-4.8.2.jar:na]
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) 
[junit-4.8.2.jar:na]
at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) 
[junit-4.8.2.jar:na]
at 
org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
 [spring-test-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at 
org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)
 [spring-test-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.junit.runners.ParentRunner.run(ParentRunner.java:236) 
[junit-4.8.2.jar:na]
at 
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174)
 [spring-test-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at 
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
 [.cp/:na]
at 
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
[.cp/:na]
at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
 [.cp/:na]
at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
 [.cp/:na]
at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
 [.cp/:na]
at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
 [.cp/:na]
Caused by: org.apache.cxf.jaxrs.client.ClientWebApplicationException: 
org.apache.cxf.interceptor.Fault: .Problem with writing the request message, 
class : class java.util.ArrayList, ContentType : multipart/form-data.
at 
org.apache.cxf.jaxrs.client.AbstractClient.checkClientException(AbstractClient.java:496)
 ~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
at 
org.apache.cxf.jaxrs.client.AbstractClient.preProcessResult(AbstractClient.java:482)
 ~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
at 
org.apache.cxf.jaxrs.client.WebClient.doChainedInvocation(WebClient.java:800) 
~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
... 35 common frames omitted
Caused by: org.apache.cxf.interceptor.Fault: .Problem with writing the request 
message, class : class java.util.ArrayList, ContentType : multipart/form-data.
at 
org.apache.cxf.jaxrs.client.WebClient$BodyWriter.handleMessage(WebClient.java:893)
 ~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
 ~[cxf-api-2.6.2.jar:2.6.2]
at 
org.apache.cxf.jaxrs.client.WebClient.doChainedInvocation(WebClient.java:795) 
~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
... 35 common frames omitted
Caused by: org.apache.cxf.jaxrs.client.ClientWebApplicationException: .Problem 
with writing the request message, class : class java.util.ArrayList, 
ContentType : multipart/form-data.
at 
org.apache.cxf.jaxrs.client.AbstractClient.reportMessageHandlerProblem(AbstractClient.java:629)
 ~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
at 
org.apache.cxf.jaxrs.client.AbstractClient.writeBody(AbstractClient.java:396) 
~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
at 
org.apache.cxf.jaxrs.client.WebClient$BodyWriter.handleMessage(WebClient.java:885)
 ~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
... 37 common frames omitted
Caused by: javax.ws.rs.WebApplicationException: null
at 
org.apache.cxf.jaxrs.provider.MultipartProvider.getHandlerForObject(MultipartProvider.java:384)
 ~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
at 
org.apache.cxf.jaxrs.provider.MultipartProvider.getHandlerForObject(MultipartProvider.java:395)
 ~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
at 
org.apache.cxf.jaxrs.provider.MultipartProvider.createDataHandler(MultipartProvider.java:341)
 ~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
at 
org.apache.cxf.jaxrs.provider.MultipartProvider.createDataHandler(MultipartProvider.java:311)
 ~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
at 
org.apache.cxf.jaxrs.provider.MultipartProvider.getAttachments(MultipartProvider.java:295)
 ~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
at 
org.apache.cxf.jaxrs.provider.MultipartProvider.convertToDataHandlers(MultipartProvider.java:276)
 ~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
at 
org.apache.cxf.jaxrs.provider.MultipartProvider.writeTo(MultipartProvider.java:249)
 ~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
at 
org.apache.cxf.jaxrs.client.AbstractClient.writeBody(AbstractClient.java:391) 
~[cxf-rt-frontend-jaxrs-2.6.2.jar:2.6.2]
... 38 common frames omitted


Reply via email to