Skip to content

Commit 82e90f8

Browse files
authored
Merge pull request #2177 from bugsnag/release/v6.13.0
Release/v6.13.0
2 parents 2546426 + 59b52bb commit 82e90f8

29 files changed

Lines changed: 179 additions & 146 deletions

File tree

.buildkite/pipeline.full.yml

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -869,6 +869,108 @@ steps:
869869
concurrency_group: 'browserstack-app'
870870
concurrency_method: eager
871871

872+
873+
- label: ':bitbar: Android 15 NDK r21 end-to-end tests - batch 1'
874+
depends_on: "fixture-r21"
875+
timeout_in_minutes: 60
876+
plugins:
877+
artifacts#v1.9.0:
878+
download:
879+
- "build/fixture-r21-url.txt"
880+
- "build/fixture-r21/*"
881+
upload:
882+
- "maze_output/failed/**/*"
883+
- "maze_output/metrics.csv"
884+
docker-compose#v4.7.0:
885+
pull: maze-runner
886+
run: maze-runner
887+
service-ports: true
888+
command:
889+
- "features/full_tests"
890+
- "--exclude=features/full_tests/[^a-k].*.feature"
891+
- "--exclude=features/full_tests/anr.feature"
892+
- "--app=@build/fixture-r21-url.txt"
893+
- "--appium-version=1.22"
894+
- "--no-tunnel"
895+
- "--aws-public-ip"
896+
- "--farm=bb"
897+
- "--device=ANDROID_15"
898+
test-collector#v1.10.2:
899+
files: "reports/TEST-*.xml"
900+
format: "junit"
901+
branch: "^main|next$$"
902+
env:
903+
TEST_FIXTURE_SYMBOL_DIR: "build/fixture-r21"
904+
concurrency: 25
905+
concurrency_group: 'bitbar'
906+
concurrency_method: eager
907+
908+
- label: ':bitbar: Android 15 NDK r21 end-to-end tests - batch 2'
909+
depends_on: "fixture-r21"
910+
timeout_in_minutes: 60
911+
plugins:
912+
artifacts#v1.9.0:
913+
download:
914+
- "build/fixture-r21-url.txt"
915+
- "build/fixture-r21/*"
916+
upload:
917+
- "maze_output/failed/**/*"
918+
- "maze_output/metrics.csv"
919+
docker-compose#v4.7.0:
920+
pull: maze-runner
921+
run: maze-runner
922+
service-ports: true
923+
command:
924+
- "features/full_tests"
925+
- "--exclude=features/full_tests/[^l-z].*.feature"
926+
- "--exclude=features/full_tests/anr.feature"
927+
- "--app=@build/fixture-r21-url.txt"
928+
- "--appium-version=1.22"
929+
- "--no-tunnel"
930+
- "--aws-public-ip"
931+
- "--farm=bb"
932+
- "--device=ANDROID_15"
933+
test-collector#v1.10.2:
934+
files: "reports/TEST-*.xml"
935+
format: "junit"
936+
branch: "^main|next$$"
937+
env:
938+
TEST_FIXTURE_SYMBOL_DIR: "build/fixture-r21"
939+
concurrency: 25
940+
concurrency_group: 'bitbar'
941+
concurrency_method: eager
942+
943+
- label: ':browserstack: Android 15 NDK r21 end-to-end tests - ANRs'
944+
depends_on: "fixture-r21"
945+
timeout_in_minutes: 30
946+
plugins:
947+
artifacts#v1.9.0:
948+
download:
949+
- "build/bs-fixture-r21-url.txt"
950+
- "build/fixture-r21/*"
951+
upload:
952+
- "maze_output/failed/**/*"
953+
- "maze_output/metrics.csv"
954+
docker-compose#v4.7.0:
955+
pull: maze-runner
956+
run: maze-runner
957+
service-ports: true
958+
command:
959+
- "features/full_tests/anr.feature"
960+
- "--app=@build/bs-fixture-r21-url.txt"
961+
- "--appium-version=1.22.0"
962+
- "--farm=bs"
963+
- "--device=ANDROID_15"
964+
test-collector#v1.10.2:
965+
files: "reports/TEST-*.xml"
966+
format: "junit"
967+
branch: "^main|next$$"
968+
env:
969+
TEST_FIXTURE_SYMBOL_DIR: "build/fixture-r21"
970+
concurrency: 5
971+
concurrency_group: 'browserstack-app'
972+
concurrency_method: eager
973+
872974
# If there is a tag present activate a manual publishing step
873975

874976
- block: 'Trigger package publish'

.github/workflows/codeql.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ jobs:
6464

6565
# Initializes the CodeQL tools for scanning.
6666
- name: Initialize CodeQL
67-
uses: github/codeql-action/init@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d #v3.28.10
67+
uses: github/codeql-action/init@45775bd8235c68ba998cffa5171334d58593da47 #v3.28.15
6868
with:
6969
languages: ${{ matrix.language }}
7070
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -83,6 +83,6 @@ jobs:
8383
./gradlew --no-daemon assemble
8484
8585
- name: Perform CodeQL Analysis
86-
uses: github/codeql-action/analyze@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d #v3.28.10
86+
uses: github/codeql-action/analyze@45775bd8235c68ba998cffa5171334d58593da47 #v3.28.15
8787
with:
8888
category: "/language:${{matrix.language}}"

.github/workflows/scorecard.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ jobs:
5959
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
6060
# format to the repository Actions tab.
6161
- name: "Upload artifact"
62-
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
62+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
6363
with:
6464
name: SARIF file
6565
path: results.sarif
@@ -68,7 +68,7 @@ jobs:
6868
# Upload the results to GitHub's code scanning dashboard (optional).
6969
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
7070
- name: "Upload to code-scanning"
71-
uses: github/codeql-action/upload-sarif@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10
71+
uses: github/codeql-action/upload-sarif@45775bd8235c68ba998cffa5171334d58593da47 # v3.28.15
7272
with:
7373
sarif_file: results.sarif
7474

@@ -77,4 +77,4 @@ jobs:
7777
runs-on: ubuntu-latest
7878
steps:
7979
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
80-
- uses: gradle/actions/wrapper-validation@94baf225fe0a508e581a564467443d0e2379123b # v4.3.0
80+
- uses: gradle/actions/wrapper-validation@06832c7b30a0129d7fb559bcc6e43d26f6374244 # v4.3.1

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Changelog
22

3+
## 6.13.0 (2025-04-15)
4+
5+
### Enhancements
6+
7+
* Attempt a second `System.loadLibrary` for native modules in case of library loading race-conditions
8+
[#2170](https://github.com/bugsnag/bugsnag-android/pull/2170)
9+
310
## 6.12.1 (2025-03-03)
411

512
### Bug fixes

bugsnag-android-core/src/main/java/com/bugsnag/android/LibraryLoader.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,14 @@ void loadLibInternal(String name, Client client, OnErrorCallback callback) {
3939
try {
4040
System.loadLibrary(name);
4141
loaded = true;
42-
} catch (UnsatisfiedLinkError error) {
43-
client.notify(error, callback);
42+
} catch (UnsatisfiedLinkError ignored) {
43+
// retry once in case the failure wasn't permanent
44+
try {
45+
System.loadLibrary(name);
46+
loaded = true;
47+
} catch (UnsatisfiedLinkError error) {
48+
client.notify(error, callback);
49+
}
4450
}
4551
}
4652
}

bugsnag-android-core/src/main/java/com/bugsnag/android/Notifier.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import java.io.IOException
77
*/
88
class Notifier @JvmOverloads constructor(
99
var name: String = "Android Bugsnag Notifier",
10-
var version: String = "6.12.1",
10+
var version: String = "6.13.0",
1111
var url: String = "https://bugsnag.com"
1212
) : JsonStream.Streamable {
1313

bugsnag-plugin-android-ndk/package.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
{
2-
"dependencies": {
3-
"kgabis/parson": "0.0.0"
4-
},
52
"development": {
63
"silentbicycle/greatest": "v1.2.1"
74
}

bugsnag-plugin-android-ndk/src/main/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ add_library( # Specifies the name of the library.
2727
jni/utils/string.c
2828
jni/utils/threads.c
2929
jni/utils/memory.c
30-
jni/deps/parson/parson.c
3130
)
3231

3332
include_directories(

bugsnag-plugin-android-ndk/src/main/jni/jni_cache.c

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -141,17 +141,9 @@ bool bsg_jni_cache_init(JNIEnv *env) {
141141

142142
CACHE_CLASS(Long, "java/lang/Long");
143143
CACHE_STATIC_METHOD(Long, Long_valueOf, "valueOf", "(J)Ljava/lang/Long;");
144-
CACHE_METHOD(Long, Long_constructor, "<init>", "(J)V");
145144

146145
CACHE_CLASS(String, "java/lang/String");
147146

148-
CACHE_CLASS(ArrayList, "java/util/ArrayList");
149-
CACHE_METHOD(ArrayList, ArrayList_constructor_default, "<init>", "()V");
150-
CACHE_METHOD(ArrayList, ArrayList_constructor_collection, "<init>",
151-
"(Ljava/util/Collection;)V");
152-
CACHE_METHOD(ArrayList, ArrayList_get, "get", "(I)Ljava/lang/Object;");
153-
CACHE_METHOD(ArrayList, ArrayList_add, "add", "(Ljava/lang/Object;)Z");
154-
155147
CACHE_CLASS(Set, "java/util/Set");
156148
CACHE_METHOD(Set, Set_iterator, "iterator", "()Ljava/util/Iterator;");
157149

@@ -160,7 +152,6 @@ bool bsg_jni_cache_init(JNIEnv *env) {
160152
CACHE_METHOD(Iterator, Iterator_next, "next", "()Ljava/lang/Object;");
161153

162154
CACHE_CLASS(Map, "java/util/Map");
163-
CACHE_METHOD(Map, Map_keySet, "keySet", "()Ljava/util/Set;");
164155
CACHE_METHOD(Map, Map_size, "size", "()I");
165156
CACHE_METHOD(Map, Map_get, "get", "(Ljava/lang/Object;)Ljava/lang/Object;");
166157
CACHE_METHOD(Map, Map_put, "put",
@@ -173,8 +164,6 @@ bool bsg_jni_cache_init(JNIEnv *env) {
173164

174165
CACHE_CLASS(HashMap, "java/util/HashMap");
175166
CACHE_METHOD(HashMap, HashMap_constructor, "<init>", "()V");
176-
CACHE_METHOD(HashMap, HashMap_keySet, "keySet", "()Ljava/util/Set;");
177-
CACHE_METHOD(HashMap, HashMap_size, "size", "()I");
178167
CACHE_METHOD(HashMap, HashMap_get, "get",
179168
"(Ljava/lang/Object;)Ljava/lang/Object;");
180169
CACHE_METHOD(HashMap, HashMap_put, "put",
@@ -196,10 +185,6 @@ bool bsg_jni_cache_init(JNIEnv *env) {
196185
CACHE_STATIC_METHOD(NativeInterface, NativeInterface_notify, "notify",
197186
"([B[BLcom/bugsnag/android/Severity;[Lcom/bugsnag/"
198187
"android/NativeStackframe;)V");
199-
CACHE_STATIC_METHOD(NativeInterface, NativeInterface_isDiscardErrorClass,
200-
"isDiscardErrorClass", "(Ljava/lang/String;)Z");
201-
CACHE_STATIC_METHOD(NativeInterface, NativeInterface_deliverReport,
202-
"deliverReport", "([B[B[BLjava/lang/String;Z)V");
203188
CACHE_STATIC_METHOD(NativeInterface, NativeInterface_leaveBreadcrumb,
204189
"leaveBreadcrumb",
205190
"([BLcom/bugsnag/android/BreadcrumbType;)V");

bugsnag-plugin-android-ndk/src/main/jni/jni_cache.h

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ typedef struct {
2626
jmethodID Int_intValue;
2727

2828
jclass Long;
29-
jmethodID Long_constructor;
3029
jmethodID Long_valueOf;
3130

3231
jclass Float;
@@ -48,7 +47,6 @@ typedef struct {
4847
jmethodID Map_get;
4948
jmethodID Map_put;
5049
jmethodID Map_size;
51-
jmethodID Map_keySet;
5250
jmethodID Map_entrySet;
5351

5452
jclass MapEntry;
@@ -59,14 +57,6 @@ typedef struct {
5957
jmethodID HashMap_constructor;
6058
jmethodID HashMap_get;
6159
jmethodID HashMap_put;
62-
jmethodID HashMap_size;
63-
jmethodID HashMap_keySet;
64-
65-
jclass ArrayList;
66-
jmethodID ArrayList_constructor_default;
67-
jmethodID ArrayList_constructor_collection;
68-
jmethodID ArrayList_get;
69-
jmethodID ArrayList_add;
7060

7161
jclass NativeInterface;
7262
jmethodID NativeInterface_getApp;
@@ -77,8 +67,6 @@ typedef struct {
7767
jmethodID NativeInterface_getContext;
7868
jmethodID NativeInterface_notify;
7969
jmethodID NativeInterface_leaveBreadcrumb;
80-
jmethodID NativeInterface_isDiscardErrorClass;
81-
jmethodID NativeInterface_deliverReport;
8270

8371
jclass NativeStackframe;
8472
jmethodID NativeStackframe_constructor;

0 commit comments

Comments
 (0)