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/03/01 14:21:18 UTC

[20/50] [abbrv] incubator-freemarker git commit: Initialization should fail if UnsafeMethods can't be read.

Initialization should fail if UnsafeMethods can't be read.


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

Branch: refs/heads/2.3
Commit: f188f97296f2925fd3bf38275af483555b5bac83
Parents: 3c0f190
Author: ddekany <dd...@apache.org>
Authored: Fri Feb 17 00:06:14 2017 +0100
Committer: ddekany <dd...@apache.org>
Committed: Fri Feb 17 00:06:14 2017 +0100

----------------------------------------------------------------------
 .../freemarker/ext/beans/UnsafeMethods.java     | 51 ++++++++++----------
 1 file changed, 26 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/f188f972/src/main/java/freemarker/ext/beans/UnsafeMethods.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/ext/beans/UnsafeMethods.java b/src/main/java/freemarker/ext/beans/UnsafeMethods.java
index 6d398ec..5ed3877 100644
--- a/src/main/java/freemarker/ext/beans/UnsafeMethods.java
+++ b/src/main/java/freemarker/ext/beans/UnsafeMethods.java
@@ -21,7 +21,6 @@ package freemarker.ext.beans;
 
 import java.io.InputStream;
 import java.lang.reflect.Method;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -34,6 +33,7 @@ import freemarker.template.utility.ClassUtil;
 
 class UnsafeMethods {
 
+    private static final String UNSAFE_METHODS_PROPERTIES = "unsafeMethods.properties";
     private static final Set UNSAFE_METHODS = createUnsafeMethodsSet();
     
     private UnsafeMethods() { }
@@ -45,36 +45,37 @@ class UnsafeMethods {
     private static final Set createUnsafeMethodsSet() {
         Properties props = new Properties();
         InputStream in = BeansWrapper.class.getResourceAsStream("unsafeMethods.properties");
-        if (in != null) {
-            String methodSpec = null;
+        if (in == null) {
+            throw new IllegalStateException("Class loader resource not found: "
+                        + BeansWrapper.class.getPackage().getName() + UNSAFE_METHODS_PROPERTIES);
+        }
+        String methodSpec = null;
+        try {
             try {
+                props.load(in);
+            } finally {
+                in.close();
+            }
+            Set set = new HashSet(props.size() * 4 / 3, 1f);
+            Map primClasses = createPrimitiveClassesMap();
+            for (Iterator iterator = props.keySet().iterator(); iterator.hasNext(); ) {
+                methodSpec = (String) iterator.next();
                 try {
-                    props.load(in);
-                } finally {
-                    in.close();
-                }
-                Set set = new HashSet(props.size() * 4 / 3, 1f);
-                Map primClasses = createPrimitiveClassesMap();
-                for (Iterator iterator = props.keySet().iterator(); iterator.hasNext(); ) {
-                    methodSpec = (String) iterator.next();
-                    try {
-                        set.add(parseMethodSpec(methodSpec, primClasses));
-                    } catch (ClassNotFoundException e) {
-                        if (ClassIntrospector.DEVELOPMENT_MODE) {
-                            throw e;
-                        }
-                    } catch (NoSuchMethodException e) {
-                        if (ClassIntrospector.DEVELOPMENT_MODE) {
-                            throw e;
-                        }
+                    set.add(parseMethodSpec(methodSpec, primClasses));
+                } catch (ClassNotFoundException e) {
+                    if (ClassIntrospector.DEVELOPMENT_MODE) {
+                        throw e;
+                    }
+                } catch (NoSuchMethodException e) {
+                    if (ClassIntrospector.DEVELOPMENT_MODE) {
+                        throw e;
                     }
                 }
-                return set;
-            } catch (Exception e) {
-                throw new RuntimeException("Could not load unsafe method " + methodSpec + " " + e.getClass().getName() + " " + e.getMessage());
             }
+            return set;
+        } catch (Exception e) {
+            throw new RuntimeException("Could not load unsafe method " + methodSpec + " " + e.getClass().getName() + " " + e.getMessage());
         }
-        return Collections.EMPTY_SET;
     }
 
     private static Method parseMethodSpec(String methodSpec, Map primClasses)