You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by cu...@apache.org on 2013/03/05 17:09:22 UTC
svn commit: r1452872 -
/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataRepository.java
Author: curtisr7
Date: Tue Mar 5 16:09:21 2013
New Revision: 1452872
URL: http://svn.apache.org/r1452872
Log:
OPENJPA-2346: Minor performance improvement to MetaDataRepository.
Modified:
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataRepository.java
Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataRepository.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataRepository.java?rev=1452872&r1=1452871&r2=1452872&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataRepository.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataRepository.java Tue Mar 5 16:09:21 2013
@@ -39,8 +39,8 @@ import org.apache.openjpa.conf.OpenJPACo
import org.apache.openjpa.enhance.DynamicPersistenceCapable;
import org.apache.openjpa.enhance.PCEnhancer;
import org.apache.openjpa.enhance.PCRegistry;
-import org.apache.openjpa.enhance.PersistenceCapable;
import org.apache.openjpa.enhance.PCRegistry.RegisterClassListener;
+import org.apache.openjpa.enhance.PersistenceCapable;
import org.apache.openjpa.event.LifecycleEventManager;
import org.apache.openjpa.lib.conf.Configurable;
import org.apache.openjpa.lib.conf.Configuration;
@@ -394,6 +394,8 @@ public class MetaDataRepository implemen
}
private ClassMetaData getMetaDataInternal(Class<?> cls, ClassLoader envLoader, boolean mustExist) {
+ ClassMetaData meta = getMetaDataInternal(cls, envLoader);
+ if (meta == null) {
if (cls != null && DynamicPersistenceCapable.class.isAssignableFrom(cls))
cls = cls.getSuperclass();
@@ -401,20 +403,20 @@ public class MetaDataRepository implemen
// to locate metadata
if (cls != null && _implGen != null && _implGen.isImplType(cls))
cls = _implGen.toManagedInterface(cls);
+ meta = getMetaDataInternal(cls, envLoader);
+ }
+ if (meta == null && mustExist) {
+ if (cls != null && !ImplHelper.isManagedType(_conf, cls))
+ throw new MetaDataException(_loc.get("no-meta-notpc", cls)).setFatal(false);
- ClassMetaData meta = getMetaDataInternal(cls, envLoader);
- if (meta == null && mustExist) {
- if (cls != null && !ImplHelper.isManagedType(_conf, cls))
- throw new MetaDataException(_loc.get("no-meta-notpc", cls)).setFatal(false);
-
- Set<String> pcNames = getPersistentTypeNames(false, envLoader);
- if (pcNames != null && pcNames.size() > 0)
- throw new MetaDataException(_loc.get("no-meta-types", cls, pcNames));
+ Set<String> pcNames = getPersistentTypeNames(false, envLoader);
+ if (pcNames != null && pcNames.size() > 0)
+ throw new MetaDataException(_loc.get("no-meta-types", cls, pcNames));
- throw new MetaDataException(_loc.get("no-meta", cls));
- }
- resolve(meta);
- return meta;
+ throw new MetaDataException(_loc.get("no-meta", cls));
+ }
+ resolve(meta);
+ return meta;
}
/**
@@ -1920,8 +1922,8 @@ public class MetaDataRepository implemen
public void endConfiguration() {
initializeMetaDataFactory();
- if (_implGen == null)
- _implGen = new InterfaceImplGenerator(this);
+ if (_implGen == null)
+ _implGen = new InterfaceImplGenerator(this);
if (_preload == true) {
_oids = new HashMap<Class<?>, Class<?>>();
_impls = new HashMap<Class<?>, Collection<Class<?>>>();