-
-
Notifications
You must be signed in to change notification settings - Fork 342
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fail gracefully when the provided json is not valid #4474
base: antonis/ref-RNSentryJsonUtils
Are you sure you want to change the base?
Fail gracefully when the provided json is not valid #4474
Conversation
Android (legacy) Performance metrics 🚀
|
Revision | Plain | With Sentry | Diff |
---|---|---|---|
11c0bc5 | 419.08 ms | 454.54 ms | 35.46 ms |
eff021d | 428.13 ms | 417.82 ms | -10.31 ms |
f9a2e3c | 449.64 ms | 469.63 ms | 19.99 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
11c0bc5 | 17.75 MiB | 20.11 MiB | 2.37 MiB |
eff021d | 17.75 MiB | 20.11 MiB | 2.37 MiB |
f9a2e3c | 17.75 MiB | 20.11 MiB | 2.37 MiB |
Android (new) Performance metrics 🚀
|
Revision | Plain | With Sentry | Diff |
---|---|---|---|
f9a2e3c+dirty | 386.92 ms | 435.47 ms | 48.55 ms |
11c0bc5+dirty | 393.98 ms | 421.85 ms | 27.87 ms |
eff021d+dirty | 404.96 ms | 469.09 ms | 64.13 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
f9a2e3c+dirty | 7.15 MiB | 8.38 MiB | 1.23 MiB |
11c0bc5+dirty | 7.15 MiB | 8.38 MiB | 1.23 MiB |
eff021d+dirty | 7.15 MiB | 8.38 MiB | 1.23 MiB |
iOS (legacy) Performance metrics 🚀
|
Revision | Plain | With Sentry | Diff |
---|---|---|---|
11c0bc5+dirty | 1215.18 ms | 1217.63 ms | 2.45 ms |
eff021d+dirty | 1233.80 ms | 1221.47 ms | -12.33 ms |
f9a2e3c+dirty | 1230.61 ms | 1221.64 ms | -8.97 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
11c0bc5+dirty | 2.63 MiB | 3.69 MiB | 1.05 MiB |
eff021d+dirty | 2.63 MiB | 3.69 MiB | 1.05 MiB |
f9a2e3c+dirty | 2.63 MiB | 3.69 MiB | 1.05 MiB |
iOS (new) Performance metrics 🚀
|
Revision | Plain | With Sentry | Diff |
---|---|---|---|
11c0bc5+dirty | 1242.98 ms | 1250.56 ms | 7.58 ms |
eff021d+dirty | 1228.45 ms | 1220.27 ms | -8.18 ms |
f9a2e3c+dirty | 1222.06 ms | 1223.62 ms | 1.56 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
11c0bc5+dirty | 3.19 MiB | 4.25 MiB | 1.06 MiB |
eff021d+dirty | 3.19 MiB | 4.25 MiB | 1.06 MiB |
f9a2e3c+dirty | 3.19 MiB | 4.25 MiB | 1.06 MiB |
…-fails-gracefully
…-fails-gracefully
logger.log( | ||
SentryLevel.WARNING, | ||
"Failed to load configuration file(" | ||
+ CONFIGURATION_FILE | ||
+ "), starting with configuration callback."); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this log is not necessary/is duplicate as the same information will be logged out in getOptionsFromConfigurationFile
.
mockedRNSentryStart.close() | ||
mockedRNSentryJsonUtils.close() | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you also add integration test which won't use the mocks (maybe just to supply the file) and initializes the SDK?
} | ||
|
||
@Test | ||
fun `fails with an error when there is an unhandled exception in initialisation`() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This test is a bit confusing to me, as the getOptionsFromConfigurationFile
should never throw.
*/ | ||
public static void init( | ||
@NotNull final Context context, | ||
@NotNull Sentry.OptionsConfiguration<SentryAndroidOptions> configuration) { | ||
@NotNull Sentry.OptionsConfiguration<SentryAndroidOptions> configuration, | ||
@NotNull ILogger logger) { | ||
try { | ||
JSONObject jsonObject = | ||
RNSentryJsonUtils.getOptionsFromConfigurationFile(context, CONFIGURATION_FILE, logger); | ||
ReadableMap rnOptions = RNSentryJsonUtils.jsonObjectToReadableMap(jsonObject); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the SDK won't initialize when the jsonObject.get throws. Can we add test for it and avoid the rethrow.
📢 Type of change
Based on #4470
📜 Description
Fail gracefully when the provided json is not valid
⛓️ PR Chain
💡 Motivation and Context
See #4451 (comment)
💚 How did you test it?
CI, Manual
📝 Checklist
sendDefaultPII
is enabled🔮 Next steps
#skip-changelog