Example usage for javax.xml.transform Transformer getErrorListener

List of usage examples for javax.xml.transform Transformer getErrorListener

Introduction

In this page you can find the example usage for javax.xml.transform Transformer getErrorListener.

Prototype

public abstract ErrorListener getErrorListener();

Source Link

Document

Get the error event handler in effect for the transformation.

Usage

From source file:nl.nn.adapterframework.util.TransformerPool.java

public String transform(Source s, Result r, Map parameters) throws TransformerException, IOException {
    Transformer transformer = getTransformer();
    try {/*from  w  w w . j a va2  s.c  o m*/
        if (r == null) {
            XmlUtils.setTransformerParameters(transformer, parameters);
            return XmlUtils.transformXml(transformer, s);
        } else {
            XmlUtils.setTransformerParameters(transformer, parameters);
            transformer.transform(s, r);
        }
    } catch (TransformerException te) {
        ((TransformerErrorListener) transformer.getErrorListener()).setFatalTransformerException(te);
    } catch (IOException ioe) {
        ((TransformerErrorListener) transformer.getErrorListener()).setFatalIOException(ioe);
    } finally {
        if (transformer != null) {
            TransformerErrorListener transformerErrorListener = (TransformerErrorListener) transformer
                    .getErrorListener();
            if (transformerErrorListener.getFatalTransformerException() != null) {
                invalidateTransformerNoThrow(transformer);
                throw transformerErrorListener.getFatalTransformerException();
            }
            if (transformerErrorListener.getFatalIOException() != null) {
                invalidateTransformerNoThrow(transformer);
                throw transformerErrorListener.getFatalIOException();
            }
            try {
                releaseTransformer(transformer);
            } catch (Exception e) {
                log.warn("Exception returning transformer to pool", e);
            }
            ;
        }
    }
    return null;
}