From ce14ca8ae3df7b335f9f6093f532df3e418b7e7d Mon Sep 17 00:00:00 2001 From: Fabian Peters Date: Thu, 5 May 2016 11:24:42 +0200 Subject: [PATCH] Prevent a ClassCastException in ERTaggableEntity that would occur when using left outer joins for the tag relationships. --- .../ERTaggable/Sources/er/taggable/ERTaggableEntity.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Frameworks/BusinessLogic/ERTaggable/Sources/er/taggable/ERTaggableEntity.java b/Frameworks/BusinessLogic/ERTaggable/Sources/er/taggable/ERTaggableEntity.java index 96b9f8b3ee9..24ce415e79e 100644 --- a/Frameworks/BusinessLogic/ERTaggable/Sources/er/taggable/ERTaggableEntity.java +++ b/Frameworks/BusinessLogic/ERTaggable/Sources/er/taggable/ERTaggableEntity.java @@ -19,6 +19,7 @@ import com.webobjects.eocontrol.EOSortOrdering; import com.webobjects.foundation.NSArray; import com.webobjects.foundation.NSDictionary; +import com.webobjects.foundation.NSKeyValueCoding; import com.webobjects.foundation.NSMutableArray; import com.webobjects.foundation.NSMutableDictionary; import com.webobjects.foundation.NSMutableSet; @@ -885,9 +886,11 @@ public NSDictionary tagCount(EOEditingContext editingContext, N NSMutableDictionary tagCounts = new NSMutableDictionary(); NSArray rawRows = ERXEOAccessUtilities.rawRowsForSQLExpression(editingContext, _entity.model(), sqlExpression, fetchAttributes); for (NSDictionary rawRow : rawRows) { - String name = (String) rawRow.objectForKey("tagName"); - Integer nameCount = (Integer) rawRow.objectForKey("tagCount"); - tagCounts.setObjectForKey(nameCount, name); + if (!NSKeyValueCoding.NullValue.equals(rawRow.objectForKey("tagName"))) { + String name = (String) rawRow.objectForKey("tagName"); + Integer nameCount = (Integer) rawRow.objectForKey("tagCount"); + tagCounts.setObjectForKey(nameCount, name); + } } return tagCounts;