Update of /var/cvs/src/org/mmbase/util
In directory james.mmbase.org:/tmp/cvs-serv4958

Modified Files:
        XMLErrorHandler.java 
Log Message:
I hate java


See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/util


Index: XMLErrorHandler.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/util/XMLErrorHandler.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- XMLErrorHandler.java        29 Aug 2005 08:54:15 -0000      1.17
+++ XMLErrorHandler.java        20 Aug 2008 17:45:31 -0000      1.18
@@ -21,7 +21,7 @@
  * @move org.mmbase.util.xml
  * @rename ErrorHandler
  * @author Gerard van Enk
- * @version $Id: XMLErrorHandler.java,v 1.17 2005/08/29 08:54:15 michiel Exp $
+ * @version $Id: XMLErrorHandler.java,v 1.18 2008/08/20 17:45:31 michiel Exp $
  */
 
 public class XMLErrorHandler implements ErrorHandler {
@@ -37,7 +37,7 @@
     private boolean error = false;
     private boolean fatal = false;
 
-    private StringBuffer messages = new StringBuffer();
+    private StringBuilder messages = new StringBuilder();
 
 
     public XMLErrorHandler() {
@@ -63,15 +63,39 @@
         }
     }
 
+    private boolean isJava5AndXInclude(Exception ex) {
+        if ( ("" + System.getProperty("java.version")).startsWith("1.5")) {
+            for (StackTraceElement el : ex.getStackTrace()) {
+                if 
(el.getClassName().equals("com.sun.org.apache.xerces.internal.xinclude.XIncludeHandler"))
 {
+                    return true;
+                }
+            }
+            return false;
+        } else {
+            return false;
+        }
+    }
+
     public void error(SAXParseException ex) throws SAXException{
-        String message = getLocationString(ex)+": "+ ex.getMessage();
+        String message = getLocationString(ex)+": "+ ex.getClass() + " " + 
ex.getMessage();
+        if (isJava5AndXInclude(ex)) {
+            // I get horrible validation exceptions in the log when doing 
xinclude in java 5.
+            // It does not happen in java 6.
+            // If you ask me, the xml parser of java 5 simply sucks. Going to 
ignore this as an 'error'.
+            log.service(message + " (this probably does not make sense");
+            return;
+        }
+
         messages.append(message + "\n");
         error = true;
         if(logMessages) {
+            if (log.isDebugEnabled()) {
+                log.error(message, new Throwable());
+            } else {
             log.error(message);
-            log.debug(Logging.stackTrace(new Throwable()));
         }
-        if(exceptionLevel<=ERROR) {
+        }
+        if(exceptionLevel <= ERROR) {
             throw ex;
         }
     }
@@ -112,7 +136,7 @@
      * Returns a string of the location.
      */
     private String getLocationString(SAXParseException ex) {
-        StringBuffer str = new StringBuffer();
+        StringBuilder str = new StringBuilder();
         String systemId = ex.getSystemId();
         if (systemId != null) {
             str.append(systemId);
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to