You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2017/10/08 21:58:17 UTC
[2/3] incubator-freemarker git commit: Added workaround against any
kind of exception related to
https://github.com/apache/incubator-freemarker/pull/37...
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 <dd...@apache.org>
Authored: Sun Oct 8 23:57:27 2017 +0200
Committer: ddekany <dd...@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);