You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by al...@apache.org on 2009/06/03 02:20:03 UTC

svn commit: r781221 - in /openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa: enhance/Reflection.java kernel/AbstractBrokerFactory.java

Author: allee8285
Date: Wed Jun  3 00:20:03 2009
New Revision: 781221

URL: http://svn.apache.org/viewvc?rev=781221&view=rev
Log:
OPENJPA-1113 - Close off memory leak.

Modified:
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/Reflection.java
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AbstractBrokerFactory.java

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/Reflection.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/Reflection.java?rev=781221&r1=781220&r2=781221&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/Reflection.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/Reflection.java Wed Jun  3 00:20:03 2009
@@ -24,10 +24,8 @@
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.security.AccessController;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
@@ -103,26 +101,6 @@
         beanPropertiesNameCache.clear();
     }
     
-    public static void flushCaches(Collection<ClassLoader> loaders) {
-        if (loaders.size() > 0) {
-            flushCache(loaders, getterMethodCache);
-            flushCache(loaders, setterMethodCache);
-            flushCache(loaders, beanPropertiesNameCache);
-        }
-    }
-
-    private static void flushCache(Collection<ClassLoader> loaders,
-        Map<Class<?>, ?> cache) {
-        for (Iterator<Class<?>> itr = cache.keySet().iterator(); 
-            itr.hasNext();) {
-            Class<?> cls = itr.next();
-            ClassLoader sLoader = cls.getClassLoader();
-            if (loaders.contains(sLoader)) {
-                itr.remove();
-            }
-        }
-    }
-
     /**
      * Return the getter method matching the given property name, optionally
      * throwing an exception if none.
@@ -132,19 +110,18 @@
         if (m != null) {
             return m;
         }
-        prop = StringUtils.capitalize(prop);
-        String name = "get" + prop;
+        String capProp = StringUtils.capitalize(prop);
         try {
             // this algorithm searches for a get<prop> or is<prop> method in
             // a breadth-first manner.
             for (Class c = cls; c != null && c != Object.class;
                 c = c.getSuperclass()) {
-                m = getDeclaredMethod(c, name, null);
+                m = getDeclaredMethod(c, "get" + capProp, null);
                 if (m != null) {
                     setGetterMethod(cls, prop, m);
                     return m;
                 } else {
-                    m = getDeclaredMethod(c, "is" + prop, null);
+                    m = getDeclaredMethod(c, "is" + capProp, null);
                     if (m != null && (m.getReturnType() == boolean.class
                         || m.getReturnType() == Boolean.class)) {
                         setGetterMethod(cls, prop, m);

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AbstractBrokerFactory.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AbstractBrokerFactory.java?rev=781221&r1=781220&r2=781221&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AbstractBrokerFactory.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/AbstractBrokerFactory.java Wed Jun  3 00:20:03 2009
@@ -411,7 +411,7 @@
                 PCRegistry.removeRegisterClassListener
                     (_conf.getMetaDataRepositoryInstance());
             }
-            Reflection.flushCaches(_pcClassLoaders);
+            Reflection.flushCaches();
             _conf.close();
             _closed = true;
             Log log = _conf.getLog(OpenJPAConfiguration.LOG_RUNTIME);