Nick Williams created DIGESTER-171:
--------------------------------------

             Summary: Add DefaultThrowingErrorHandler to Digester API.
                 Key: DIGESTER-171
                 URL: https://issues.apache.org/jira/browse/DIGESTER-171
             Project: Commons Digester
          Issue Type: Improvement
    Affects Versions: 3.2
            Reporter: Nick Williams
            Priority: Minor


The current default error handling behavior is for the SAX parses to NOT throw 
exceptions when they occur, but instead to log them to stderr. This is fine and 
I am not suggesting that be changed. However, there is a wiki article 
(http://wiki.apache.org/commons/Digester/FAQ) that describes the common task of 
implementing an error handler that throws encountered errors.

If this is so common, it would seem that including such an error handler in the 
API would be a very convenient thing to do.

I propose that the following class be added to the digester to make it 
convenient for anyone to turn on this behavior:

{code}package org.apache.commons.digester3;

import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;

public class DefaultThrowingErrorHandler implements ErrorHandler
{
    @Override
    public void warning(SAXParseException e) throws SAXException
    {
        throw e;
    }

    @Override
    public void error(SAXParseException e) throws SAXException
    {
        throw e;
    }

    @Override
    public void fatalError(SAXParseException e) throws SAXException
    {
        throw e;
    }
}{code}

Furthermore, I propose that the DigesterLoader and Digester classes have 
setThrowEncounteredSAXErrors(boolean) methods that set the error handler to the 
DefaultThrowingErrorHandler..

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to