DataDog / dd-sdk-android

Datadog SDK for Android (Compatible with Kotlin and Java)
Apache License 2.0
141 stars 57 forks source link

RUM-1462 Fix thread safety warnings #2056

Closed xgouchet closed 1 month ago

xgouchet commented 1 month ago

What does this PR do?

A rule we used for a while now is using the Thread annotation (e.g.: @UIThread, @WorkerThread, …) to ensure operations that should happen in a specific context didn't cross thread expectations.

Unfortunately we had a large number of @Suppress annotations and thread boundaries crossings in our code base.

This PR provides two things :

codecov-commenter commented 1 month ago

Codecov Report

Attention: Patch coverage is 97.05882% with 1 lines in your changes are missing coverage. Please review.

Project coverage is 82.99%. Comparing base (237641e) to head (421d25b).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## develop #2056 +/- ## =========================================== - Coverage 83.16% 82.99% -0.17% =========================================== Files 494 494 Lines 17735 17727 -8 Branches 2684 2682 -2 =========================================== - Hits 14748 14712 -36 - Misses 2252 2279 +27 - Partials 735 736 +1 ``` | [Files](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2056?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | Coverage Δ | | |---|---|---| | [...ore/src/main/kotlin/com/datadog/android/Datadog.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2056?src=pr&el=tree&filepath=dd-sdk-android-core%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2FDatadog.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZGQtc2RrLWFuZHJvaWQtY29yZS9zcmMvbWFpbi9rb3RsaW4vY29tL2RhdGFkb2cvYW5kcm9pZC9EYXRhZG9nLmt0) | `76.25% <ø> (ø)` | | | [...src/main/kotlin/com/datadog/android/api/SdkCore.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2056?src=pr&el=tree&filepath=dd-sdk-android-core%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fapi%2FSdkCore.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZGQtc2RrLWFuZHJvaWQtY29yZS9zcmMvbWFpbi9rb3RsaW4vY29tL2RhdGFkb2cvYW5kcm9pZC9hcGkvU2RrQ29yZS5rdA==) | `25.00% <ø> (ø)` | | | [...in/com/datadog/android/api/feature/FeatureScope.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2056?src=pr&el=tree&filepath=dd-sdk-android-core%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fapi%2Ffeature%2FFeatureScope.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZGQtc2RrLWFuZHJvaWQtY29yZS9zcmMvbWFpbi9rb3RsaW4vY29tL2RhdGFkb2cvYW5kcm9pZC9hcGkvZmVhdHVyZS9GZWF0dXJlU2NvcGUua3Q=) | `0.00% <ø> (ø)` | | | [...n/com/datadog/android/core/internal/CoreFeature.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2056?src=pr&el=tree&filepath=dd-sdk-android-core%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fcore%2Finternal%2FCoreFeature.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZGQtc2RrLWFuZHJvaWQtY29yZS9zcmMvbWFpbi9rb3RsaW4vY29tL2RhdGFkb2cvYW5kcm9pZC9jb3JlL2ludGVybmFsL0NvcmVGZWF0dXJlLmt0) | `87.39% <ø> (ø)` | | | [...n/com/datadog/android/core/internal/DatadogCore.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2056?src=pr&el=tree&filepath=dd-sdk-android-core%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fcore%2Finternal%2FDatadogCore.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZGQtc2RrLWFuZHJvaWQtY29yZS9zcmMvbWFpbi9rb3RsaW4vY29tL2RhdGFkb2cvYW5kcm9pZC9jb3JlL2ludGVybmFsL0RhdGFkb2dDb3JlLmt0) | `82.06% <100.00%> (+0.08%)` | :arrow_up: | | [...in/com/datadog/android/core/internal/SdkFeature.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2056?src=pr&el=tree&filepath=dd-sdk-android-core%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fcore%2Finternal%2FSdkFeature.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZGQtc2RrLWFuZHJvaWQtY29yZS9zcmMvbWFpbi9rb3RsaW4vY29tL2RhdGFkb2cvYW5kcm9pZC9jb3JlL2ludGVybmFsL1Nka0ZlYXR1cmUua3Q=) | `89.10% <ø> (ø)` | | | [...l/net/info/BroadcastReceiverNetworkInfoProvider.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2056?src=pr&el=tree&filepath=dd-sdk-android-core%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fcore%2Finternal%2Fnet%2Finfo%2FBroadcastReceiverNetworkInfoProvider.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZGQtc2RrLWFuZHJvaWQtY29yZS9zcmMvbWFpbi9rb3RsaW4vY29tL2RhdGFkb2cvYW5kcm9pZC9jb3JlL2ludGVybmFsL25ldC9pbmZvL0Jyb2FkY2FzdFJlY2VpdmVyTmV0d29ya0luZm9Qcm92aWRlci5rdA==) | `93.94% <ø> (ø)` | | | [...droid/core/internal/persistence/AbstractStorage.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2056?src=pr&el=tree&filepath=dd-sdk-android-core%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fcore%2Finternal%2Fpersistence%2FAbstractStorage.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZGQtc2RrLWFuZHJvaWQtY29yZS9zcmMvbWFpbi9rb3RsaW4vY29tL2RhdGFkb2cvYW5kcm9pZC9jb3JlL2ludGVybmFsL3BlcnNpc3RlbmNlL0Fic3RyYWN0U3RvcmFnZS5rdA==) | `100.00% <ø> (ø)` | | | [...d/core/internal/persistence/ConsentAwareStorage.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2056?src=pr&el=tree&filepath=dd-sdk-android-core%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fcore%2Finternal%2Fpersistence%2FConsentAwareStorage.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZGQtc2RrLWFuZHJvaWQtY29yZS9zcmMvbWFpbi9rb3RsaW4vY29tL2RhdGFkb2cvYW5kcm9pZC9jb3JlL2ludGVybmFsL3BlcnNpc3RlbmNlL0NvbnNlbnRBd2FyZVN0b3JhZ2Uua3Q=) | `98.72% <100.00%> (+0.02%)` | :arrow_up: | | [...ence/file/advanced/ConsentAwareFileOrchestrator.kt](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2056?src=pr&el=tree&filepath=dd-sdk-android-core%2Fsrc%2Fmain%2Fkotlin%2Fcom%2Fdatadog%2Fandroid%2Fcore%2Finternal%2Fpersistence%2Ffile%2Fadvanced%2FConsentAwareFileOrchestrator.kt&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog#diff-ZGQtc2RrLWFuZHJvaWQtY29yZS9zcmMvbWFpbi9rb3RsaW4vY29tL2RhdGFkb2cvYW5kcm9pZC9jb3JlL2ludGVybmFsL3BlcnNpc3RlbmNlL2ZpbGUvYWR2YW5jZWQvQ29uc2VudEF3YXJlRmlsZU9yY2hlc3RyYXRvci5rdA==) | `96.67% <ø> (ø)` | | | ... and [41 more](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2056?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog) | | ... and [24 files with indirect coverage changes](https://app.codecov.io/gh/DataDog/dd-sdk-android/pull/2056/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=DataDog)