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();