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);
         }