You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tiles.apache.org by ap...@apache.org on 2007/10/12 22:39:28 UTC
svn commit: r584262 - in /tiles/framework/trunk/tiles-core/src:
main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java
test/java/org/apache/tiles/definition/digester/TestDigesterDefinitionsReader.java
Author: apetrelli
Date: Fri Oct 12 13:39:04 2007
New Revision: 584262
URL: http://svn.apache.org/viewvc?rev=584262&view=rev
Log:
TILES-224
Now loading an invalid Tiles definition file raises an exception, thanks to a specific error handler.
Modified:
tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java
tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/definition/digester/TestDigesterDefinitionsReader.java
Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java?rev=584262&r1=584261&r2=584262&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java Fri Oct 12 13:39:04 2007
@@ -30,6 +30,7 @@
import org.apache.tiles.definition.DefinitionsFactoryException;
import org.apache.tiles.definition.DefinitionsReader;
import org.xml.sax.Attributes;
+import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import java.io.IOException;
@@ -37,6 +38,7 @@
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
+import org.xml.sax.SAXParseException;
/**
* Reads {@link Definition} objects from
@@ -195,6 +197,7 @@
digester.setValidating(validating);
digester.setNamespaceAware(true);
digester.setUseContextClassLoader(true);
+ digester.setErrorHandler(new ThrowingErrorHandler());
// Register our local copy of the DTDs that we can find
for (int i = 0; i < registrations.length; i += 2) {
@@ -365,5 +368,26 @@
*/
public void addDefinition(Definition definition) {
definitions.put(definition.getName(), definition);
+ }
+
+ /**
+ * Error Handler that throws every exception it receives.
+ */
+ private static class ThrowingErrorHandler implements ErrorHandler {
+
+ /** {@inheritDoc} */
+ public void warning(SAXParseException exception) throws SAXException {
+ throw exception;
+ }
+
+ /** {@inheritDoc} */
+ public void error(SAXParseException exception) throws SAXException {
+ throw exception;
+ }
+
+ /** {@inheritDoc} */
+ public void fatalError(SAXParseException exception) throws SAXException {
+ throw exception;
+ }
}
}
Modified: tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/definition/digester/TestDigesterDefinitionsReader.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/definition/digester/TestDigesterDefinitionsReader.java?rev=584262&r1=584261&r2=584262&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/definition/digester/TestDigesterDefinitionsReader.java (original)
+++ tiles/framework/trunk/tiles-core/src/test/java/org/apache/tiles/definition/digester/TestDigesterDefinitionsReader.java Fri Oct 12 13:39:04 2007
@@ -204,7 +204,7 @@
*
* I don't know why DigesterDefinitionsReader doesn't catch the
* SAXParseException or how it makes it to the "fail" statement below.
- *
+ */
try {
DefinitionsReader reader = new DigesterDefinitionsReader();
Map params = new HashMap();
@@ -224,6 +224,5 @@
} catch (Exception e) {
fail("Exception reading configuration." + e);
}
- */
}
}