the resource loaders from spring (eg spring-webmvc-tiles3 from SPR-8825) throw unchecked exceptions.
git-svn-id: https://svn.apache.org/repos/asf/tiles/framework/trunk@1422025 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/tiles-extras/src/main/java/org/apache/tiles/extras/renderer/OptionsRenderer.java b/tiles-extras/src/main/java/org/apache/tiles/extras/renderer/OptionsRenderer.java
index bf5b346..4a61cd4 100644
--- a/tiles-extras/src/main/java/org/apache/tiles/extras/renderer/OptionsRenderer.java
+++ b/tiles-extras/src/main/java/org/apache/tiles/extras/renderer/OptionsRenderer.java
@@ -135,11 +135,11 @@
boolean result = false;
if (Cache.attemptTemplate(template)) {
try {
- if (null != applicationContext.getResource(template)) { // can throw FileNotFoundException !
- renderer.render(template, request); // can throw FileNotFoundException !
+ if (null != applicationContext.getResource(template)) {
+ renderer.render(template, request);
result = true;
}
- } catch (FileNotFoundException ex) {
+ } catch (IOException ex) {
if (ex.getMessage().contains(template)) {
// expected outcome. continue loop.
LOG.trace(ex.getMessage());
@@ -147,8 +147,14 @@
// comes from an inner templateAttribute.render(..) so throw on
throw ex;
}
- } catch (IOException ex) { //xxx ???
- throw ex;
+ } catch (RuntimeException ex) {
+ if (ex.getMessage().contains(template)) {
+ // expected outcome. continue loop.
+ LOG.trace(ex.getMessage());
+ } else {
+ // comes from an inner templateAttribute.render(..) so throw on
+ throw ex;
+ }
}
Cache.update(template, result);
}