VELOCITY-718 prevent infinite loop in HashMap.get()
git-svn-id: https://svn.apache.org/repos/asf/velocity/engine/branches/2.0_Exp@778054 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/java/org/apache/velocity/util/introspection/ClassMap.java b/src/java/org/apache/velocity/util/introspection/ClassMap.java
index c272f8e..cb7a137 100644
--- a/src/java/org/apache/velocity/util/introspection/ClassMap.java
+++ b/src/java/org/apache/velocity/util/introspection/ClassMap.java
@@ -23,6 +23,7 @@
import java.lang.reflect.Modifier;
import java.util.HashMap;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import org.apache.commons.lang.text.StrBuilder;
import org.apache.velocity.runtime.log.Log;
@@ -215,7 +216,7 @@
* Cache of Methods, or CACHE_MISS, keyed by method
* name and actual arguments used to find it.
*/
- private final Map cache = new HashMap();
+ private final Map cache = new ConcurrentHashMap();
/** Map of methods that are searchable according to method parameters to find a match */
private final MethodMap methodMap = new MethodMap();
diff --git a/src/java/org/apache/velocity/util/introspection/MethodMap.java b/src/java/org/apache/velocity/util/introspection/MethodMap.java
index 577e4d0..5c977be 100644
--- a/src/java/org/apache/velocity/util/introspection/MethodMap.java
+++ b/src/java/org/apache/velocity/util/introspection/MethodMap.java
@@ -21,11 +21,11 @@
import java.lang.reflect.Method;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
/**
*
@@ -45,7 +45,7 @@
/**
* Keep track of all methods with the same name.
*/
- Map methodByNameMap = new HashMap();
+ Map methodByNameMap = new ConcurrentHashMap();
/**
* Add a method to a list of methods by name.