You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by fa...@apache.org on 2010/01/28 06:53:48 UTC

svn commit: r903964 - /openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/OpenJPAPersistenceUtil.java

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