Author: gbayon
Date: Sat Sep 15 07:29:07 2007
New Revision: 575921

URL: http://svn.apache.org/viewvc?rev=575921&view=rev
Log:
Fix IBATISNET-232 Nested left joins with group by cause NPE when two subsequent 
levels have null values

Modified:
    
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/PropertStrategy/GroupByStrategy.cs

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/PropertStrategy/GroupByStrategy.cs
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/PropertStrategy/GroupByStrategy.cs?rev=575921&r1=575920&r2=575921&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/PropertStrategy/GroupByStrategy.cs
 (original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/MappedStatements/PropertStrategy/GroupByStrategy.cs
 Sat Sep 15 07:29:07 2007
@@ -109,13 +109,19 @@
                 {
                     // Unique key is already known, so get the existing result 
object and process additional results.
                     result = buildObjects[uniqueKey];
-                    // process resulMapping attribute which point to a groupBy 
attribute
-                    for (int index = 0; index < 
propertyRresultMap.Properties.Count; index++)
+
+                    //In some cases (nested groupings) our object may be null, 
so there is
+                    //no point in going on
+                    if (result != null)
                     {
-                        ResultProperty resultProperty = 
propertyRresultMap.Properties[index];
-                        if (resultProperty.PropertyStrategy is 
PropertStrategy.GroupByStrategy)
+                        // process resulMapping attribute which point to a 
groupBy attribute
+                        for (int index = 0; index < 
propertyRresultMap.Properties.Count; index++)
                         {
-                            resultProperty.PropertyStrategy.Set(request, 
propertyRresultMap, resultProperty, ref result, reader, null);
+                            ResultProperty resultProperty = 
propertyRresultMap.Properties[index];
+                            if (resultProperty.PropertyStrategy is 
PropertStrategy.GroupByStrategy)
+                            {
+                                resultProperty.PropertyStrategy.Set(request, 
propertyRresultMap, resultProperty, ref result, reader, null);
+                            }
                         }
                     }
                     result = SKIP;


Reply via email to