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