From eedce1372bafa55590993037bb5dcf0c80206004 Mon Sep 17 00:00:00 2001 From: Bert Frees Date: Wed, 29 Mar 2017 14:08:17 +0200 Subject: [PATCH] Log compilation errors in p:xslt --- src/main/java/com/xmlcalabash/library/XSLT.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/com/xmlcalabash/library/XSLT.java b/src/main/java/com/xmlcalabash/library/XSLT.java index 1d632acf..619778b9 100644 --- a/src/main/java/com/xmlcalabash/library/XSLT.java +++ b/src/main/java/com/xmlcalabash/library/XSLT.java @@ -24,6 +24,7 @@ import java.net.URISyntaxException; import java.util.Hashtable; import java.util.Vector; +import javax.xml.transform.ErrorListener; import javax.xml.transform.Result; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; @@ -207,6 +208,7 @@ public void run() throws SaxonApiException { try { XsltCompiler compiler = runtime.getProcessor().newXsltCompiler(); compiler.setSchemaAware(processor.isSchemaAware()); + compiler.setErrorListener(new LogCompileErrors()); XsltExecutable exec = compiler.compile(stylesheet.asSource()); XsltTransformer transformer = exec.load(); @@ -420,4 +422,16 @@ public void message(XdmNode content, boolean terminate, javax.xml.transform.Sour step.info(step.getNode(), content.toString()); } } + + class LogCompileErrors implements ErrorListener { + public void error(TransformerException exception) { + logger.error(exception.getMessage()); + } + public void fatalError(TransformerException exception) { + logger.error(exception.getMessage()); + } + public void warning(TransformerException exception) { + logger.warn(exception.getMessage()); + } + } }