Author: faywang
Date: Thu Jan 28 05:53:47 2010
New Revision: 903964

URL: http://svn.apache.org/viewvc?rev=903964&view=rev
Log:
OPENJPA-1485: fix potential classCast exception for StateManagerImpl

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

Modified: 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/OpenJPAPersistenceUtil.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/OpenJPAPersistenceUtil.java?rev=903964&r1=903963&r2=903964&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/OpenJPAPersistenceUtil.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/OpenJPAPersistenceUtil.java
 Thu Jan 28 05:53:47 2010
@@ -162,7 +162,7 @@
             if (fmds != null && fmds.length > 0) {
                 pcs = addToLoadSet(pcs, sm);
                 for (FieldMetaData fmd : fmds) {
-                    if (((StateManagerImpl)sm).requiresFetch(fmd)) {
+                    if (requiresFetch(sm, fmd)) {
                         if (!isLoadedField(sm, fmd, pcs)) {
                             isLoaded = false;
                             break;
@@ -178,6 +178,12 @@
         }
         return isLoaded ? LoadState.LOADED : LoadState.NOT_LOADED;        
     }
+    
+    private static boolean requiresFetch(OpenJPAStateManager sm, FieldMetaData 
fmd) {
+        if (sm instanceof StateManagerImpl)
+            return ((StateManagerImpl)sm).requiresFetch(fmd);
+        return fmd.isInDefaultFetchGroup();
+    }
 
     /*
      * Returns true if the field is a collection type and it was explicitly


Reply via email to