Repository: cxf Updated Branches: refs/heads/2.7.x-fixes 86b169b16 -> 39e65abf8
[CXF-6665] ClassCastException in SoapActionInInterceptor (regression in 2.7.x) Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/39e65abf Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/39e65abf Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/39e65abf Branch: refs/heads/2.7.x-fixes Commit: 39e65abf8fe2b181a9262c5953c389e9bb7ca706 Parents: 86b169b Author: Akitoshi Yoshida <a...@apache.org> Authored: Thu Nov 5 18:35:02 2015 +0100 Committer: Akitoshi Yoshida <a...@apache.org> Committed: Thu Nov 5 18:35:02 2015 +0100 ---------------------------------------------------------------------- .../binding/soap/interceptor/SoapActionInInterceptor.java | 9 +++++---- .../soap/interceptor/SoapActionInInterceptorTest.java | 5 ++--- 2 files changed, 7 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/39e65abf/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptor.java ---------------------------------------------------------------------- diff --git a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptor.java b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptor.java index f079681..2fba894 100644 --- a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptor.java +++ b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptor.java @@ -83,10 +83,11 @@ public class SoapActionInInterceptor extends AbstractSoapInterceptor { if (start == -1 && ct.indexOf("multipart/related") == 0 && ct.indexOf("start-info") == -1) { // the action property may not be found at the package's content-type for non-mtom multipart message // but skip searching if the start-info property is set - List<String> cts = CastUtils.cast((List<?>)(((Map<?, ?>) - message.get("javax.mail.internet.InternetHeaders")).get(Message.CONTENT_TYPE))); - if (cts != null && cts.size() > 0) { - ct = cts.get(0); + // use cxf-2.7.x specific code + String[] cts = ((javax.mail.internet.InternetHeaders) + message.get("javax.mail.internet.InternetHeaders")).getHeader(Message.CONTENT_TYPE); + if (cts != null && cts.length > 0) { + ct = cts[0]; start = ct.indexOf("action="); } } http://git-wip-us.apache.org/repos/asf/cxf/blob/39e65abf/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptorTest.java ---------------------------------------------------------------------- diff --git a/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptorTest.java b/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptorTest.java index 286b28b..e39284a 100644 --- a/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptorTest.java +++ b/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapActionInInterceptorTest.java @@ -173,12 +173,11 @@ public class SoapActionInInterceptorTest extends Assert { private SoapMessage setUpMessage(String contentType, SoapVersion version, String prop) { SoapMessage message = control.createMock(SoapMessage.class); Map<String, List<String>> headers = new TreeMap<String, List<String>>(String.CASE_INSENSITIVE_ORDER); - Map<String, List<String>> partHeaders = new TreeMap<String, List<String>>(String.CASE_INSENSITIVE_ORDER); + javax.mail.internet.InternetHeaders partHeaders = new javax.mail.internet.InternetHeaders(); if (version instanceof Soap11 && prop != null) { headers.put("SOAPAction", Collections.singletonList(prop)); } else if (version instanceof Soap12 && prop != null) { - partHeaders.put(Message.CONTENT_TYPE, - Collections.singletonList("application/soap+xml; action=\"" + prop + "\"")); + partHeaders.setHeader(Message.CONTENT_TYPE, "application/soap+xml; action=\"" + prop + "\""); } EasyMock.expect(message.getVersion()).andReturn(version).anyTimes(); EasyMock.expect(message.get(Message.CONTENT_TYPE)).andReturn(contentType).anyTimes();