You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2013/07/10 17:39:15 UTC

svn commit: r1501799 - /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/HierarchicalObjectResolverNode.java

Author: aadamchik
Date: Wed Jul 10 15:39:14 2013
New Revision: 1501799

URL: http://svn.apache.org/r1501799
Log:
CAY-1695  Unexpected null value in bidirectional one-to-one prefetch

formatting, no change

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/HierarchicalObjectResolverNode.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/HierarchicalObjectResolverNode.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/HierarchicalObjectResolverNode.java?rev=1501799&r1=1501798&r2=1501799&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/HierarchicalObjectResolverNode.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/HierarchicalObjectResolverNode.java Wed Jul 10 15:39:14 2013
@@ -33,8 +33,8 @@ class HierarchicalObjectResolverNode ext
 
     private PrefetchProcessorNode node;
 
-    HierarchicalObjectResolverNode(PrefetchProcessorNode node, DataContext context,
-            ClassDescriptor descriptor, boolean refresh) {
+    HierarchicalObjectResolverNode(PrefetchProcessorNode node, DataContext context, ClassDescriptor descriptor,
+            boolean refresh) {
         super(context, descriptor, refresh);
         this.node = node;
     }
@@ -50,18 +50,20 @@ class HierarchicalObjectResolverNode ext
 
         // here we can get the same object repeated multiple times in case of
         // many-to-many between prefetched and main entity... this is needed to
-        // connect prefetched objects to the main objects. To avoid needlessly refreshing
-        // the same object multiple times, track which objectids area already loaded in
+        // connect prefetched objects to the main objects. To avoid needlessly
+        // refreshing
+        // the same object multiple times, track which objectids area already
+        // loaded in
         // this pass
         Map<ObjectId, Persistent> seen = new HashMap<ObjectId, Persistent>();
 
         for (DataRow row : rows) {
 
             // determine entity to use
-            ClassDescriptor classDescriptor = descriptorResolutionStrategy
-                    .descriptorForRow(row);
+            ClassDescriptor classDescriptor = descriptorResolutionStrategy.descriptorForRow(row);
 
-            // not using DataRow.createObjectId for performance reasons - ObjectResolver
+            // not using DataRow.createObjectId for performance reasons -
+            // ObjectResolver
             // has all needed metadata already cached.
             ObjectId anId = createObjectId(row, classDescriptor.getEntity(), null);
 
@@ -71,13 +73,13 @@ class HierarchicalObjectResolverNode ext
                 object = objectFromDataRow(row, anId, classDescriptor);
 
                 if (object == null) {
-                    throw new CayenneRuntimeException("Can't build Object from row: "
-                            + row);
+                    throw new CayenneRuntimeException("Can't build Object from row: " + row);
                 }
                 seen.put(anId, object);
             }
 
-            // keep the dupe objects (and data rows) around, as there maybe an attached
+            // keep the dupe objects (and data rows) around, as there maybe an
+            // attached
             // joint prefetch...
             results.add(object);
 
@@ -86,10 +88,14 @@ class HierarchicalObjectResolverNode ext
 
         // now deal with snapshots
 
-        // TODO: refactoring: dupes will clutter the lists and cause extra processing...
-        // removal of dupes happens only downstream, as we need the objects matching
-        // fetched rows for joint prefetch resolving... maybe pushback unique and
-        // non-unique lists to the "node", instead of returning a single list from this
+        // TODO: refactoring: dupes will clutter the lists and cause extra
+        // processing...
+        // removal of dupes happens only downstream, as we need the objects
+        // matching
+        // fetched rows for joint prefetch resolving... maybe pushback unique
+        // and
+        // non-unique lists to the "node", instead of returning a single list
+        // from this
         // method
         cache.snapshotsUpdatedForObjects(results, rows, refreshObjects);