Hi Dan, yes. I changed it to use the local name comparison so that both unqualified and qualified elements are accepted, where this latter "qualified" case seems to happen frequently in some old implementations in production. The comment lines above that part, which you added in 2007, talks exactly about this situation and I thought the intention of the code was to accept both names: qualified and unqualified for maximum interoperability.
Maybe, I misread your comment. If you are against accepting both types by default, we could introduce an option to make this behavior optional or we could revert the change and ask people to configure the transform feature. But I think, there is benefit in accepting both elements than strictly rejecting those non-BP compliant elements. Thanks. regards, Aki 2014-06-26 22:40 GMT+02:00 Daniel Kulp <[email protected]>: > > Aki, > > Isn’t the "part.getConcreteName()” qname only the local name (no namespace) > in this case? On the wire, that part name should NOT be qualified so we > should be checking to make sure that’s the case to make sure it’s a valid > message. > > > Dan > > > > On Jun 26, 2014, at 3:54 PM, [email protected] wrote: > >> Repository: cxf >> Updated Branches: >> refs/heads/master cd058a977 -> bf8247f86 >> >> >> [CXF-5827] Use only local name matching for inbound rpc/literal processing >> >> >> Project: http://git-wip-us.apache.org/repos/asf/cxf/repo >> Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/bf8247f8 >> Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/bf8247f8 >> Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/bf8247f8 >> >> Branch: refs/heads/master >> Commit: bf8247f8640c59b6647e2dde0c5a142624afdd24 >> Parents: cd058a9 >> Author: Akitoshi Yoshida <[email protected]> >> Authored: Thu Jun 26 21:54:15 2014 +0200 >> Committer: Akitoshi Yoshida <[email protected]> >> Committed: Thu Jun 26 21:54:15 2014 +0200 >> >> ---------------------------------------------------------------------- >> .../apache/cxf/binding/soap/interceptor/RPCInInterceptor.java | 5 +++-- >> 1 file changed, 3 insertions(+), 2 deletions(-) >> ---------------------------------------------------------------------- >> >> >> http://git-wip-us.apache.org/repos/asf/cxf/blob/bf8247f8/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCInInterceptor.java >> ---------------------------------------------------------------------- >> diff --git >> a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCInInterceptor.java >> >> b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCInInterceptor.java >> index cd16a9c..37120a8 100644 >> --- >> a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCInInterceptor.java >> +++ >> b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/RPCInInterceptor.java >> @@ -164,8 +164,9 @@ public class RPCInInterceptor extends >> AbstractInDatabindingInterceptor { >> && partItr.hasNext()) { >> part = partItr.next(); >> } >> - >> - if (!qn.equals(part.getConcreteName())) { >> + >> + // only check the localpart as explained above >> + if >> (!qn.getLocalPart().equals(part.getConcreteName().getLocalPart())) { >> throw new Fault( >> new org.apache.cxf.common.i18n.Message( >> >> "UNKNOWN_RPC_LIT_PART", >> > > -- > Daniel Kulp > [email protected] - http://dankulp.com/blog > Talend Community Coder - http://coders.talend.com >
