Skip to content

Commit c57ae0f

Browse files
authored
More safely handle event IDs in migrations (#5348)
* More safely handle event IDs in migrations * Change to an explicit nil check
1 parent 3fffcd8 commit c57ae0f

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

GoogleDataTransport/GDTCORLibrary/GDTCOREvent.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,9 @@ - (id)initWithCoder:(NSCoder *)aDecoder {
202202
self = [self initWithMappingID:mappingID target:target];
203203
if (self) {
204204
_eventID = [aDecoder decodeObjectOfClass:[NSNumber class] forKey:eventIDKey];
205+
if (_eventID == nil) {
206+
_eventID = [GDTCOREvent nextEventID];
207+
}
205208
_qosTier = [aDecoder decodeIntegerForKey:qosTierKey];
206209
_clockSnapshot = [aDecoder decodeObjectOfClass:[GDTCORClock class] forKey:clockSnapshotKey];
207210
NSURL *fileURL = [aDecoder decodeObjectOfClass:[NSURL class] forKey:fileURLKey];

GoogleDataTransport/GDTCORLibrary/GDTCORUploadCoordinator.m

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,12 @@ - (void)packageDelivered:(GDTCORUploadPackage *)package successful:(BOOL)success
245245
if (successful && packageEvents.count) {
246246
NSMutableSet *eventIDs = [[NSMutableSet alloc] init];
247247
for (GDTCOREvent *event in packageEvents) {
248-
[eventIDs addObject:[event.eventID copy]];
248+
NSNumber *eventID = event.eventID;
249+
if (eventID != nil) {
250+
[eventIDs addObject:eventID];
251+
} else {
252+
GDTCORLogDebug(@"An event was missing its ID: %@", event);
253+
}
249254
}
250255
[[self storageForTarget:@(package.target)] removeEvents:eventIDs];
251256
}

0 commit comments

Comments
 (0)