-
-
Couldn't load subscription status.
- Fork 353
Fail gracefully when the provided json is not valid #4474
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
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.
| 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.
|
Closing after integrating the useful parts in the parent PR #4451 |
📢 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
sendDefaultPIIis enabled🔮 Next steps
#skip-changelog