Author: mprudhom
Date: Mon Jan 29 16:54:19 2007
New Revision: 501255

URL: http://svn.apache.org/viewvc?view=rev&rev=501255
Log:
If we don't know the access type for a class when parsing, first check for a 
superclass and default to that class' access type.

Modified:
    
incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java

Modified: 
incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
URL: 
http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java?view=diff&rev=501255&r1=501254&r2=501255
==============================================================================
--- 
incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
 (original)
+++ 
incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
 Mon Jan 29 16:54:19 2007
@@ -742,9 +742,17 @@
             return false;
         }
 
+        // if we don't know the access type, check for a superclass
+        int defaultAccess = _access;
+        if (defaultAccess == ClassMetaData.ACCESS_UNKNOWN) {
+            ClassMetaData sup = repos.getCachedMetaData(_cls.getSuperclass());
+            if (sup != null)
+                defaultAccess = sup.getAccessType();
+        }
+
         if (meta == null) {
             // add metadata for this type
-            int access = toAccessType(attrs.getValue("access"), _access);
+            int access = toAccessType(attrs.getValue("access"), defaultAccess);
             meta = repos.addMetaData(_cls, access);
             meta.setEnvClassLoader(_envLoader);
             meta.setSourceMode(MODE_NONE);


Reply via email to