diff --git a/src/darwin/Framework/CHIP/MTRDeviceControllerDataStore.mm b/src/darwin/Framework/CHIP/MTRDeviceControllerDataStore.mm index 1ab9014eacb5df..d6c7e8c00dfeb1 100644 --- a/src/darwin/Framework/CHIP/MTRDeviceControllerDataStore.mm +++ b/src/darwin/Framework/CHIP/MTRDeviceControllerDataStore.mm @@ -153,16 +153,16 @@ - (nullable instancetype)initWithController:(MTRDeviceController *)controller - (void)fetchAttributeDataForAllDevices:(MTRDeviceControllerDataStoreClusterDataHandler)clusterDataHandler { - __block NSDictionary *> * clusterDataByNode = nil; + __block NSDictionary * dataStoreSecureLocalValues = nil; dispatch_sync(_storageDelegateQueue, ^{ if ([self->_storageDelegate respondsToSelector:@selector(valuesForController:securityLevel:sharingType:)]) { - NSDictionary * dataStoreSecureLocalValues = [self->_storageDelegate valuesForController:self->_controller securityLevel:MTRStorageSecurityLevelSecure sharingType:MTRStorageSharingTypeNotShared]; - - clusterDataByNode = [self _getClusterDataFromSecureLocalValues:dataStoreSecureLocalValues]; + dataStoreSecureLocalValues = [self->_storageDelegate valuesForController:self->_controller securityLevel:MTRStorageSecurityLevelSecure sharingType:MTRStorageSharingTypeNotShared]; } }); - clusterDataHandler(clusterDataByNode); + if (dataStoreSecureLocalValues.count) { + clusterDataHandler([self _getClusterDataFromSecureLocalValues:dataStoreSecureLocalValues]); + } } - (nullable MTRCASESessionResumptionInfo *)findResumptionInfoByNodeID:(NSNumber *)nodeID