You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Jayson Raymond (JIRA)" <ji...@apache.org> on 2008/06/18 15:50:45 UTC

[jira] Created: (CXF-1657) CheckFaultInterceptor causes XMLStreamReader to throw IllegalState at doc end

CheckFaultInterceptor causes XMLStreamReader to throw IllegalState at doc end
-----------------------------------------------------------------------------

                 Key: CXF-1657
                 URL: https://issues.apache.org/jira/browse/CXF-1657
             Project: CXF
          Issue Type: Bug
          Components: Soap Binding
    Affects Versions: 2.1
            Reporter: Jayson Raymond


>From handleMessage():
  :
        try {
            // advance to first tag.
            int x = xmlReader.getEventType();
            while (x != XMLStreamReader.START_ELEMENT
                && x != XMLStreamReader.END_ELEMENT
                && xmlReader.hasNext()) {
                x = xmlReader.next();
            }
        } catch (XMLStreamException e) {
            throw new SoapFault(new Message("XML_STREAM_EXC", LOG), e, 
                                message.getVersion().getSender());
        }
        if (message.getVersion().getFault().equals(xmlReader.getName())) {
 :
In the case where hasNext() == false (e.g. document end) will cause the subsequent call to xmlReader.getName() to throw an IllegalStateException, as per the javax.xml.stream,XMLStreamReader interface. It would seem the appropriate response would be to simply return in this case:

  :
        try {
            // advance to first tag.
            int x = xmlReader.getEventType();
            while (x != XMLStreamReader.START_ELEMENT
                && x != XMLStreamReader.END_ELEMENT
                && xmlReader.hasNext()) {
                x = xmlReader.next();
            }
            if ( x==XMLStreamReader.END_DOCUMENT) return;
        } catch (XMLStreamException e) {
 :


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


[jira] Resolved: (CXF-1657) CheckFaultInterceptor causes XMLStreamReader to throw IllegalState at doc end

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1657?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp resolved CXF-1657.
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.0.9
                   2.1.2
         Assignee: Daniel Kulp

> CheckFaultInterceptor causes XMLStreamReader to throw IllegalState at doc end
> -----------------------------------------------------------------------------
>
>                 Key: CXF-1657
>                 URL: https://issues.apache.org/jira/browse/CXF-1657
>             Project: CXF
>          Issue Type: Bug
>          Components: Soap Binding
>    Affects Versions: 2.1
>            Reporter: Jayson Raymond
>            Assignee: Daniel Kulp
>             Fix For: 2.1.2, 2.0.9
>
>
> From handleMessage():
>   :
>         try {
>             // advance to first tag.
>             int x = xmlReader.getEventType();
>             while (x != XMLStreamReader.START_ELEMENT
>                 && x != XMLStreamReader.END_ELEMENT
>                 && xmlReader.hasNext()) {
>                 x = xmlReader.next();
>             }
>         } catch (XMLStreamException e) {
>             throw new SoapFault(new Message("XML_STREAM_EXC", LOG), e, 
>                                 message.getVersion().getSender());
>         }
>         if (message.getVersion().getFault().equals(xmlReader.getName())) {
>  :
> In the case where hasNext() == false (e.g. document end) will cause the subsequent call to xmlReader.getName() to throw an IllegalStateException, as per the javax.xml.stream,XMLStreamReader interface. It would seem the appropriate response would be to simply return in this case:
>   :
>         try {
>             // advance to first tag.
>             int x = xmlReader.getEventType();
>             while (x != XMLStreamReader.START_ELEMENT
>                 && x != XMLStreamReader.END_ELEMENT
>                 && xmlReader.hasNext()) {
>                 x = xmlReader.next();
>             }
>             if ( x==XMLStreamReader.END_DOCUMENT) return;
>         } catch (XMLStreamException e) {
>  :

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