Merge branch 'charlesmchen/deserializationLogging'

pull/1/head
Matthew Chen 7 years ago
commit 56dfc6ffab

@ -1 +1 @@
Subproject commit 9f01282113e10d50ff87e76ee5fa8d2c09d19f7f
Subproject commit 5caa906cfd9c24f464247747004cc8335b96040c

@ -212,6 +212,8 @@ NSString *const kNSUserDefaults_DatabaseExtensionVersionMap = @"kNSUserDefaults_
- (void)encodeWithCoder:(NSCoder *)aCoder
{
OWSRaiseException(
@"OWSStorageExceptionName_SaveToUnknownCollection", @"Tried to save object from unknown collection");
}
@end
@ -230,8 +232,8 @@ NSString *const kNSUserDefaults_DatabaseExtensionVersionMap = @"kNSUserDefaults_
cannotDecodeObjectOfClassName:(NSString *)name
originalClasses:(NSArray<NSString *> *)classNames
{
DDLogError(@"%@ Could not decode object: %@", self.logTag, name);
OWSProdError([OWSAnalyticsEvents storageErrorCouldNotDecodeClass]);
OWSProdLogAndFail(@"%@ Could not decode object: %@", self.logTag, name);
OWSProdCritical([OWSAnalyticsEvents storageErrorCouldNotDecodeClass]);
return [OWSUnknownDBObject class];
}
@ -458,7 +460,8 @@ NSString *const kNSUserDefaults_DatabaseExtensionVersionMap = @"kNSUserDefaults_
return [unarchiver decodeObjectForKey:@"root"];
} @catch (NSException *exception) {
// Sync log in case we bail.
OWSProdError([OWSAnalyticsEvents storageErrorDeserialization]);
OWSProdLogAndFail(@"%@ error deserializing object: %@", self.logTag, collection);
OWSProdCritical([OWSAnalyticsEvents storageErrorDeserialization]);
@throw exception;
}
};

@ -1,13 +0,0 @@
//
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
//
NS_ASSUME_NONNULL_BEGIN
// Some lingering TSRecipient records in the wild causing crashes.
// This is a stop gap until a proper cleanup happens.
@interface TSRecipient : NSObject <NSCoding>
@end
NS_ASSUME_NONNULL_END

@ -1,21 +0,0 @@
//
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
#import "TSRecipient.h"
NS_ASSUME_NONNULL_BEGIN
@implementation TSRecipient
- (void)encodeWithCoder:(nonnull NSCoder *)aCoder {
return;
}
- (nullable instancetype)initWithCoder:(nonnull NSCoder *)aDecoder {
return nil;
}
@end
NS_ASSUME_NONNULL_END

@ -340,7 +340,7 @@ NSString *NSStringForOWSAnalyticsSeverity(OWSAnalyticsSeverity severity)
}
};
if ([self isSeverityAsync:severity]) {
if ([self shouldReportAsync:severity]) {
dispatch_async(self.serialQueue, addEvent);
} else {
dispatch_sync(self.serialQueue, addEvent);
@ -383,12 +383,19 @@ NSString *NSStringForOWSAnalyticsSeverity(OWSAnalyticsSeverity severity)
// Log the event.
NSString *logString = [NSString stringWithFormat:@"%s:%d %@", location, line, eventName];
if (!parameters) {
LOG_MAYBE([self isSeverityAsync:severity], LOG_LEVEL_DEF, logFlag, 0, nil, location, @"%@", logString);
LOG_MAYBE([self shouldReportAsync:severity], LOG_LEVEL_DEF, logFlag, 0, nil, location, @"%@", logString);
} else {
LOG_MAYBE(
[self isSeverityAsync:severity], LOG_LEVEL_DEF, logFlag, 0, nil, location, @"%@ %@", logString, parameters);
}
if (![self isSeverityAsync:severity]) {
LOG_MAYBE([self shouldReportAsync:severity],
LOG_LEVEL_DEF,
logFlag,
0,
nil,
location,
@"%@ %@",
logString,
parameters);
}
if (![self shouldReportAsync:severity]) {
[DDLog flushLog];
}
@ -397,9 +404,9 @@ NSString *NSStringForOWSAnalyticsSeverity(OWSAnalyticsSeverity severity)
[self addEvent:eventName severity:severity properties:eventProperties];
}
- (BOOL)isSeverityAsync:(OWSAnalyticsSeverity)severity
- (BOOL)shouldReportAsync:(OWSAnalyticsSeverity)severity
{
return severity == OWSAnalyticsSeverityCritical;
return severity != OWSAnalyticsSeverityCritical;
}
#pragma mark - Logging

Loading…
Cancel
Save