Index: openjpa-kernel/src/main/java/org/apache/openjpa/util/ImplHelper.java =================================================================== --- openjpa-kernel/src/main/java/org/apache/openjpa/util/ImplHelper.java (revision 556924) +++ openjpa-kernel/src/main/java/org/apache/openjpa/util/ImplHelper.java (working copy) @@ -214,7 +214,7 @@ Boolean isAssignable = null; Map assignableTo = (Map) _assignableTypes.get(from); if (assignableTo == null) { // "to" cache doesn't exist, so create it... - assignableTo = new ConcurrentHashMap(); + assignableTo = new ConcurrentReferenceHashMap(ReferenceMap.WEAK, ReferenceMap.HARD); _assignableTypes.put(from, assignableTo); } else { // "to" cache exists... isAssignable = (Boolean) assignableTo.get(to);