cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Kulp (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (CXF-1208) WrapperClassInInterceptor incorrecltly handing SOAP headers
Date Tue, 19 Feb 2008 22:12:43 GMT

     [ https://issues.apache.org/jira/browse/CXF-1208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Daniel Kulp resolved CXF-1208.
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.0.4
         Assignee: Daniel Kulp

> WrapperClassInInterceptor incorrecltly handing SOAP headers
> -----------------------------------------------------------
>
>                 Key: CXF-1208
>                 URL: https://issues.apache.org/jira/browse/CXF-1208
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 2.0.2
>         Environment: windows XP, JBoss
>            Reporter: Incognito
>            Assignee: Daniel Kulp
>             Fix For: 2.0.4
>
>
> The following code block in WrapperClassInInterceptor is throwing IndexOutOfBoundsExceptions.
The reason is that the newParams list has two (null) list entries, but the MessagePartInfo
indeces that are being added to the remove arraylist are 1 and 2. 
>                 List<Integer> removes = null;
>                 for (MessagePartInfo part : messageInfo.getMessageParts()) {
>                     if (Boolean.TRUE.equals(part.getProperty(ReflectionServiceFactoryBean.HEADER)))
{
>                         MessagePartInfo mpi = wrappedMessageInfo.getMessagePart(part.getName());
>                         if (lst.hasValue(mpi)) {
>                             newParams.put(part, lst.get(mpi));
>                         } else if (mpi.getTypeClass() == null) {
>                             //header, but not mapped to a param on the method
>                             if (removes == null) {
>                                 removes = new ArrayList<Integer>();
>                             }
>                             removes.add(mpi.getIndex());
>                         }
>                     }
>                 }
>                 if (removes != null) {
>                     Collections.sort(removes, Collections.reverseOrder());
>                     for (Integer i : removes) {
>                         newParams.remove(i.intValue()); // <= error thrown here
>                     }
>                 }
> The two items being removed are a username and password header set in my WSDL file: 
>       <wsdl:input name="sayHelloRequest">
>         <wsdlsoap:header message="impl:username" part="username" use="literal"/>
>         <wsdlsoap:header message="impl:password" part="password" use="literal"/>
>         <wsdlsoap:body use="literal"/>
>       </wsdl:input>
> It seems the wrappedMessageInfo correctly contains all three message parts (the sayHello
invocation, and 2 headers) but messageInfo.getMessageParts() is only returned the latter two.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message