You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by oh...@apache.org on 2006/04/17 20:11:19 UTC
svn commit: r394744 - in /jakarta/commons/proper/configuration/trunk/src:
java/org/apache/commons/configuration/XMLConfiguration.java
test/org/apache/commons/configuration/TestXMLConfiguration.java
Author: oheger
Date: Mon Apr 17 11:11:19 2006
New Revision: 394744
URL: http://svn.apache.org/viewcvs?rev=394744&view=rev
Log:
Catching TransformerFactoryConfigurationError when saving XML files. Thanks to Rahul Akolkar for this tip!
Modified:
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/XMLConfiguration.java
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestXMLConfiguration.java
Modified: jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/XMLConfiguration.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/XMLConfiguration.java?rev=394744&r1=394743&r2=394744&view=diff
==============================================================================
--- jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/XMLConfiguration.java (original)
+++ jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/XMLConfiguration.java Mon Apr 17 11:11:19 2006
@@ -35,6 +35,7 @@
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
@@ -632,6 +633,10 @@
catch (TransformerException e)
{
throw new ConfigurationException(e.getMessage(), e);
+ }
+ catch (TransformerFactoryConfigurationError err)
+ {
+ throw new ConfigurationException(err.getMessage(), err);
}
}
Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestXMLConfiguration.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestXMLConfiguration.java?rev=394744&r1=394743&r2=394744&view=diff
==============================================================================
--- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestXMLConfiguration.java (original)
+++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestXMLConfiguration.java Mon Apr 17 11:11:19 2006
@@ -61,6 +61,9 @@
/** Constant for the DOCTYPE prefix.*/
static final String DOCTYPE = "<!DOCTYPE ";
+ /** Constant for the transformer factory property.*/
+ static final String PROP_FACTORY = "javax.xml.transform.TransformerFactory";
+
/** The File that we test with */
private String testProperties = new File("conf/test.xml").getAbsolutePath();
private String testProperties2 = new File("conf/testDigesterConfigurationInclude1.xml").getAbsolutePath();
@@ -852,6 +855,29 @@
conf.save(out);
assertTrue("Did not find DOCTYPE", out.toString().indexOf(
DOCTYPE + "testconfig" + DOCTYPE_DECL) >= 0);
+ }
+
+ /**
+ * Tests saving a configuration when an invalid transformer factory is
+ * specified. In this case the error thrown by the TransformerFactory class
+ * should be caught and re-thrown as a ConfigurationException.
+ */
+ public void testSaveWithInvalidTransformerFactory()
+ {
+ System.setProperty(PROP_FACTORY, "an.invalid.Class");
+ try
+ {
+ conf.save(testSaveConf);
+ fail("Could save with invalid TransformerFactory!");
+ }
+ catch (ConfigurationException cex)
+ {
+ // ok
+ }
+ finally
+ {
+ System.getProperties().remove(PROP_FACTORY);
+ }
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org