Added workaround against any kind of exception related to 
https://github.com/apache/incubator-freemarker/pull/37...


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/d2a26061
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/d2a26061
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/d2a26061

Branch: refs/heads/2.3
Commit: d2a26061efc0585809766c3d5d5eb74e6af20e48
Parents: 031762b
Author: ddekany <ddek...@apache.org>
Authored: Sun Oct 8 23:57:27 2017 +0200
Committer: ddekany <ddek...@apache.org>
Committed: Sun Oct 8 23:57:27 2017 +0200

----------------------------------------------------------------------
 .../freemarker/template/utility/ClassUtil.java  | 21 ++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d2a26061/src/main/java/freemarker/template/utility/ClassUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/template/utility/ClassUtil.java 
b/src/main/java/freemarker/template/utility/ClassUtil.java
index d5601f2..6b262f5 100644
--- a/src/main/java/freemarker/template/utility/ClassUtil.java
+++ b/src/main/java/freemarker/template/utility/ClassUtil.java
@@ -387,7 +387,7 @@ public class ClassUtil {
     /**
      * Very similar to {@link Class#getResourceAsStream(String)}, but throws 
{@link IOException} instead of returning
      * {@code null} if {@code optional} is {@code false}, and attempts to work 
around "IllegalStateException: zip file
-     * closed" issues (caused by bugs outside of FreeMarker).
+     * closed" and related issues (caused by bugs outside of FreeMarker).
      * 
      * @return If {@code optional} is {@code false}, it's never {@code null}, 
otherwise {@code null} indicates that the
      *         resource doesn't exist.
@@ -401,9 +401,9 @@ public class ClassUtil {
         InputStream ins;
         try {
             ins = baseClass.getResourceAsStream(resource);
-        } catch (IllegalStateException e) {
-            // Workaround for "IllegalStateException: zip file closed". This 
happens due to bugs outside of FreeMarker,
-            // but we try to work it around anyway.
+        } catch (Exception e) {
+            // Workaround for "IllegalStateException: zip file closed", and 
other related exceptions. This happens due
+            // to bugs outside of FreeMarker, but we try to work it around 
anyway.
             URL url = baseClass.getResource(resource);
             ins = url != null ? url.openStream() : null;
         }
@@ -424,7 +424,7 @@ public class ClassUtil {
         InputStream ins;
         try {
             ins = classLoader.getResourceAsStream(resource);
-        } catch (IllegalStateException e) {
+        } catch (Exception e) {
             URL url = classLoader.getResource(resource);
             ins = url != null ? url.openStream() : null;
         }
@@ -436,7 +436,8 @@ public class ClassUtil {
     }
 
     /**
-     * Loads a class loader resource into a {@link Properties}; tries to work 
around "zip file closed" errors.
+     * Loads a class loader resource into a {@link Properties}; tries to work 
around "zip file closed" and related
+     * errors.
      * 
      * @since 2.3.27
      */
@@ -447,18 +448,18 @@ public class ClassUtil {
         try {
             try {
                 ins = baseClass.getResourceAsStream(resource);
-            } catch (IllegalStateException e) {
+            } catch (Exception e) {
                 throw new MaybeZipFileClosedException();
             }
             checkInputStreamNotNull(ins, baseClass, resource);
             try {
                 props.load(ins);
-            } catch (ZipException e) {
+            } catch (Exception e) {
                 throw new MaybeZipFileClosedException();                
             }
         } catch (MaybeZipFileClosedException e) {
-            // Workaround for "zip file closed" exception. This happens due to 
bugs outside of FreeMarker, but we try
-            // to work it around anyway.
+            // Workaround for "zip file closed" exception, and other related 
exceptions. This happens due to bugs
+            // outside of FreeMarker, but we try to work it around anyway.
             URL url = baseClass.getResource(resource);
             ins = url != null ? url.openStream() : null;
             checkInputStreamNotNull(ins, baseClass, resource);

Reply via email to