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