From 1e6925ebc194a71dae2bfc126c7e47be6f4f639c Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Fri, 3 Mar 2017 15:27:02 -0500 Subject: [PATCH] Fix crash-on-launch for older installs populating the de-duping index assumes authorId is always set for incoming messages, but this was not always the case. // FREEBIE --- src/Storage/OWSIncomingMessageFinder.m | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Storage/OWSIncomingMessageFinder.m b/src/Storage/OWSIncomingMessageFinder.m index af28990de..fc1fd8729 100644 --- a/src/Storage/OWSIncomingMessageFinder.m +++ b/src/Storage/OWSIncomingMessageFinder.m @@ -78,8 +78,11 @@ NSString *const OWSIncomingMessageFinderColumnSourceDeviceId = @"OWSIncomingMess if ([object isKindOfClass:[TSIncomingMessage class]]) { TSIncomingMessage *incomingMessage = (TSIncomingMessage *)object; + // On new messages authorId should be set on all incoming messages, but there was a time when authorId was + // only set on incoming group messages. + NSObject *authorIdOrNull = incomingMessage.authorId ? incomingMessage.authorId : [NSNull null]; [dict setObject:@(incomingMessage.timestamp) forKey:OWSIncomingMessageFinderColumnTimestamp]; - [dict setObject:incomingMessage.authorId forKey:OWSIncomingMessageFinderColumnSourceId]; + [dict setObject:authorIdOrNull forKey:OWSIncomingMessageFinderColumnSourceId]; [dict setObject:@(incomingMessage.sourceDeviceId) forKey:OWSIncomingMessageFinderColumnSourceDeviceId]; } };