You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by ve...@apache.org on 2010/09/29 15:28:40 UTC

svn commit: r1002618 - /webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/

Author: veithen
Date: Wed Sep 29 13:28:40 2010
New Revision: 1002618

URL: http://svn.apache.org/viewvc?rev=1002618&view=rev
Log:
Fixed the XLXP dialect (XLXP has a similar character encoding autodetection flaw as XLXP2).

Added:
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP1Dialect.java
      - copied, changed from r1002511, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXPDialect.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP1StreamReaderWrapper.java
      - copied, changed from r1002511, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXPStreamReaderWrapper.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXPInputFactoryWrapper.java
      - copied, changed from r1002531, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP2InputFactoryWrapper.java
Removed:
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP2InputFactoryWrapper.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXPDialect.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXPStreamReaderWrapper.java
Modified:
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/StAXDialectDetector.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP2Dialect.java

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/StAXDialectDetector.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/StAXDialectDetector.java?rev=1002618&r1=1002617&r2=1002618&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/StAXDialectDetector.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/StAXDialectDetector.java Wed Sep 29 13:28:40 2010
@@ -281,7 +281,7 @@ public class StAXDialectDetector {
             } catch (NoSuchFieldException ex) {
                 isSetPrefixBroken = true;
             }
-            return new XLXPDialect(isSetPrefixBroken);
+            return new XLXP1Dialect(isSetPrefixBroken);
         }
         cls = loadClass(classLoader, rootUrl, "com.ibm.xml.xlxp2.api.stax.StAXImplConstants");
         if (cls != null) {

Copied: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP1Dialect.java (from r1002511, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXPDialect.java)
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP1Dialect.java?p2=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP1Dialect.java&p1=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXPDialect.java&r1=1002511&r2=1002618&rev=1002618&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXPDialect.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP1Dialect.java Wed Sep 29 13:28:40 2010
@@ -24,10 +24,10 @@ import javax.xml.stream.XMLOutputFactory
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
-class XLXPDialect extends AbstractStAXDialect {
+class XLXP1Dialect extends AbstractStAXDialect {
     private final boolean isSetPrefixBroken;
     
-    public XLXPDialect(boolean isSetPrefixBroken) {
+    public XLXP1Dialect(boolean isSetPrefixBroken) {
         this.isSetPrefixBroken = isSetPrefixBroken;
     }
     
@@ -56,7 +56,7 @@ class XLXPDialect extends AbstractStAXDi
     }
 
     public XMLStreamReader normalize(XMLStreamReader reader) {
-        return new XLXPStreamReaderWrapper(reader);
+        return new XLXP1StreamReaderWrapper(reader);
     }
 
     public XMLStreamWriter normalize(XMLStreamWriter writer) {
@@ -70,7 +70,7 @@ class XLXPDialect extends AbstractStAXDi
     }
 
     public XMLInputFactory normalize(XMLInputFactory factory) {
-        return new NormalizingXMLInputFactoryWrapper(factory, this);
+        return new XLXPInputFactoryWrapper(factory, this);
     }
 
     public XMLOutputFactory normalize(XMLOutputFactory factory) {

Copied: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP1StreamReaderWrapper.java (from r1002511, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXPStreamReaderWrapper.java)
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP1StreamReaderWrapper.java?p2=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP1StreamReaderWrapper.java&p1=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXPStreamReaderWrapper.java&r1=1002511&r2=1002618&rev=1002618&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXPStreamReaderWrapper.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP1StreamReaderWrapper.java Wed Sep 29 13:28:40 2010
@@ -24,8 +24,8 @@ import javax.xml.stream.XMLStreamReader;
 import org.apache.axiom.ext.stax.DelegatingXMLStreamReader;
 import org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper;
 
-class XLXPStreamReaderWrapper extends XMLStreamReaderWrapper implements DelegatingXMLStreamReader {
-    public XLXPStreamReaderWrapper(XMLStreamReader parent) {
+class XLXP1StreamReaderWrapper extends XMLStreamReaderWrapper implements DelegatingXMLStreamReader {
+    public XLXP1StreamReaderWrapper(XMLStreamReader parent) {
         super(parent);
     }
 

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP2Dialect.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP2Dialect.java?rev=1002618&r1=1002617&r2=1002618&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP2Dialect.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP2Dialect.java Wed Sep 29 13:28:40 2010
@@ -63,7 +63,7 @@ class XLXP2Dialect extends AbstractStAXD
     }
 
     public XMLInputFactory normalize(XMLInputFactory factory) {
-        return new XLXP2InputFactoryWrapper(factory, this);
+        return new XLXPInputFactoryWrapper(factory, this);
     }
 
     public XMLOutputFactory normalize(XMLOutputFactory factory) {

Copied: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXPInputFactoryWrapper.java (from r1002531, webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP2InputFactoryWrapper.java)
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXPInputFactoryWrapper.java?p2=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXPInputFactoryWrapper.java&p1=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP2InputFactoryWrapper.java&r1=1002531&r2=1002618&rev=1002618&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXP2InputFactoryWrapper.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/stax/dialect/XLXPInputFactoryWrapper.java Wed Sep 29 13:28:40 2010
@@ -25,8 +25,8 @@ import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
-class XLXP2InputFactoryWrapper extends NormalizingXMLInputFactoryWrapper {
-    public XLXP2InputFactoryWrapper(XMLInputFactory parent, AbstractStAXDialect dialect) {
+class XLXPInputFactoryWrapper extends NormalizingXMLInputFactoryWrapper {
+    public XLXPInputFactoryWrapper(XMLInputFactory parent, AbstractStAXDialect dialect) {
         super(parent, dialect);
     }
 
@@ -36,9 +36,12 @@ class XLXP2InputFactoryWrapper extends N
 
     public XMLStreamReader createXMLStreamReader(String systemId, InputStream stream)
             throws XMLStreamException {
-        // XLXP2 fails on documents that use UTF-16 without byte order marker,
-        // although this type of document is explicitly supported by the XML
-        // specification.
+        // Both versions of XLXP have issues with documents using UTF-16 without byte
+        // order markers, although this type of document is explicitly supported by the XML
+        // specification:
+        // * XLXP parses the document, XMLStreamReader#getEncoding incorrectly reports
+        //   UTF-8 as the detected encoding. 
+        // * XLXP2 simply fails on UTF-16 documents without BOM.
         EncodingDetectionHelper helper = new EncodingDetectionHelper(stream);
         stream = helper.getInputStream();
         String encoding = helper.detectEncoding();