All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.directwebremoting.util.LogErrorHandler Maven / Gradle / Ivy

package org.directwebremoting.util;

import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.Log;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXParseException;

/**
 * An ErrorHandler that writes to the Log class
 * @author Joe Walker [joe at getahead dot ltd dot uk]
 */
public final class LogErrorHandler implements ErrorHandler
{
    /* (non-Javadoc)
     * @see org.xml.sax.ErrorHandler#fatalError(org.xml.sax.SAXParseException)
     */
    public void fatalError(SAXParseException ex)
    {
        log.fatal(getMessage(ex));
    }

    /* (non-Javadoc)
     * @see org.xml.sax.ErrorHandler#error(org.xml.sax.SAXParseException)
     */
    public void error(SAXParseException ex)
    {
        log.error(getMessage(ex));
    }

    /* (non-Javadoc)
     * @see org.xml.sax.ErrorHandler#warning(org.xml.sax.SAXParseException)
     */
    public void warning(SAXParseException ex)
    {
        log.warn(getMessage(ex));
    }

    /**
     * @param ex The exception to create a message from
     * @return A summary of what went wrong.
     */
    private static String getMessage(SAXParseException ex)
    {
        if (ex.getSystemId() != null)
        {
            return "SystemID=" + ex.getSystemId() + " Line=" + ex.getLineNumber() + ' ' + ex.getMessage();
        }

        if (ex.getPublicId() != null)
        {
            return "PublicID=" + ex.getPublicId() + " Line=" + ex.getLineNumber() + ' ' + ex.getMessage();
        }

        return "Line=" + ex.getLineNumber() + ' ' + ex.getMessage();
    }

    /**
     * The log stream
     */
    private static final Log log = LogFactory.getLog(LogErrorHandler.class);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy