Author: veithen
Date: Thu Aug  6 21:55:51 2009
New Revision: 801823

URL: http://svn.apache.org/viewvc?rev=801823&view=rev
Log:
We explicitly allow creation of a StAXOMWrapper from a parser in state 
START_ELEMENT. This means that we must check the state of the parser before 
calling getVersion or isStandalone, since these methods are allowed by the StAX 
specs only in state START_DOCUMENT. This solves an issue with XLXP.

Modified:
    
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java?rev=801823&r1=801822&r2=801823&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java
 Thu Aug  6 21:55:51 2009
@@ -158,8 +158,16 @@
         if (charEncoding != null) {
             document.setCharsetEncoding(charEncoding);
         }
-        document.setXMLVersion(parser.getVersion());
-        document.setStandalone(parser.isStandalone() ? "yes" : "no");
+        if (parser.getEventType() == XMLStreamConstants.START_DOCUMENT) {
+            document.setXMLVersion(parser.getVersion());
+            document.setStandalone(parser.isStandalone() ? "yes" : "no");
+        } else {
+            // We allow creating a StAXOMWrapper from a parser in state 
START_ELEMENT. In that
+            // case, we must not call getVersion or isStandalone since this is 
forbidden by the
+            // StAX specs. Set some reasonable defaults.
+            document.setXMLVersion("1.0");
+            document.setStandalone("yes");
+        }
         return document;
     }
 


Reply via email to