You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2017/02/27 17:08:51 UTC
svn commit: r1784600 -
/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/XMLSerializer.java
Author: schor
Date: Mon Feb 27 17:08:51 2017
New Revision: 1784600
URL: http://svn.apache.org/viewvc?rev=1784600&view=rev
Log:
[UIMA-5338] fix error message for invalid xml char finding to not try to output that bad char in an error message, use just the hex representation
Modified:
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/XMLSerializer.java
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/XMLSerializer.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/XMLSerializer.java?rev=1784600&r1=1784599&r2=1784600&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/XMLSerializer.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/XMLSerializer.java Mon Feb 27 17:08:51 2017
@@ -376,12 +376,15 @@ public class XMLSerializer {
private final void checkForInvalidXmlChars(String s, boolean xml11) throws SAXParseException {
final int index = XMLUtils.checkForNonXmlCharacters(s, xml11);
if (index >= 0) {
- String msg = String.format("Trying to serialize non-XML %s character: %c, 0x%x at offset %,d in string starting with %s",
- (xml11 ? "1.1" : "1.0"),
- s.charAt(index),
- (int)s.charAt(index),
- index,
- s.substring(0, Math.min(100, s.length())));
+ String startStr = (index == 0)
+ ? "[The Very First Character]"
+ : s.substring(0, Math.min(index, Math.min(100, s.length())));
+ String msg = String.format("Trying to serialize non-XML %s character: 0x%x at offset %,d in string starting with %s",
+ (xml11 ? "1.1" : "1.0"),
+// s.charAt(index), // don't try to output this, causes problems with other tooling
+ (int)s.charAt(index),
+ index,
+ startStr);
throw new SAXParseException(msg, null);
}
}
@@ -389,12 +392,15 @@ public class XMLSerializer {
private final void checkForInvalidXmlChars(char[] ch, int start, int length, boolean xml11) throws SAXParseException {
final int index = XMLUtils.checkForNonXmlCharacters(ch, start, length, xml11);
if (index >= 0) {
- String msg = String.format("Trying to serialize non-XML %s character: %c, 0x%x at offset %,d in string starting with %s",
+ String startStr = (index == 0)
+ ? "[The Very First Character]"
+ : new String(ch).substring(0, Math.min(index, Math.min(100, ch.length)));
+ String msg = String.format("Trying to serialize non-XML %s character: 0x%x at offset %,d in string starting with %s",
(xml11 ? "1.1" : "1.0"),
- ch[index],
+// ch[index], // don't try to output this, causes problems with other tooling
(int)(ch[index]),
index,
- (new String(ch)).substring(0, Math.min(100, ch.length)));
+ startStr);
throw new SAXParseException(msg, null);
}
}