@@ -31,12 +31,18 @@ public NdkScopeObserver(final @NotNull SentryOptions options) {
31
31
@ Override
32
32
public void setUser (final @ Nullable User user ) {
33
33
try {
34
- if (user == null ) {
35
- // remove user if its null
36
- nativeScope .removeUser ();
37
- } else {
38
- nativeScope .setUser (user .getId (), user .getEmail (), user .getIpAddress (), user .getUsername ());
39
- }
34
+ options
35
+ .getExecutorService ()
36
+ .submit (
37
+ () -> {
38
+ if (user == null ) {
39
+ // remove user if its null
40
+ nativeScope .removeUser ();
41
+ } else {
42
+ nativeScope .setUser (
43
+ user .getId (), user .getEmail (), user .getIpAddress (), user .getUsername ());
44
+ }
45
+ });
40
46
} catch (Throwable e ) {
41
47
options .getLogger ().log (SentryLevel .ERROR , e , "Scope sync setUser has an error." );
42
48
}
@@ -45,24 +51,36 @@ public void setUser(final @Nullable User user) {
45
51
@ Override
46
52
public void addBreadcrumb (final @ NotNull Breadcrumb crumb ) {
47
53
try {
48
- String level = null ;
49
- if (crumb .getLevel () != null ) {
50
- level = crumb .getLevel ().name ().toLowerCase (Locale .ROOT );
51
- }
52
- final String timestamp = DateUtils .getTimestamp (crumb .getTimestamp ());
54
+ options
55
+ .getExecutorService ()
56
+ .submit (
57
+ () -> {
58
+ String level = null ;
59
+ if (crumb .getLevel () != null ) {
60
+ level = crumb .getLevel ().name ().toLowerCase (Locale .ROOT );
61
+ }
62
+ final String timestamp = DateUtils .getTimestamp (crumb .getTimestamp ());
53
63
54
- String data = null ;
55
- try {
56
- final Map <String , Object > dataRef = crumb .getData ();
57
- if (!dataRef .isEmpty ()) {
58
- data = options .getSerializer ().serialize (dataRef );
59
- }
60
- } catch (Throwable e ) {
61
- options .getLogger ().log (SentryLevel .ERROR , e , "Breadcrumb data is not serializable." );
62
- }
64
+ String data = null ;
65
+ try {
66
+ final Map <String , Object > dataRef = crumb .getData ();
67
+ if (!dataRef .isEmpty ()) {
68
+ data = options .getSerializer ().serialize (dataRef );
69
+ }
70
+ } catch (Throwable e ) {
71
+ options
72
+ .getLogger ()
73
+ .log (SentryLevel .ERROR , e , "Breadcrumb data is not serializable." );
74
+ }
63
75
64
- nativeScope .addBreadcrumb (
65
- level , crumb .getMessage (), crumb .getCategory (), crumb .getType (), timestamp , data );
76
+ nativeScope .addBreadcrumb (
77
+ level ,
78
+ crumb .getMessage (),
79
+ crumb .getCategory (),
80
+ crumb .getType (),
81
+ timestamp ,
82
+ data );
83
+ });
66
84
} catch (Throwable e ) {
67
85
options .getLogger ().log (SentryLevel .ERROR , e , "Scope sync addBreadcrumb has an error." );
68
86
}
@@ -71,7 +89,7 @@ public void addBreadcrumb(final @NotNull Breadcrumb crumb) {
71
89
@ Override
72
90
public void setTag (final @ NotNull String key , final @ NotNull String value ) {
73
91
try {
74
- nativeScope .setTag (key , value );
92
+ options . getExecutorService (). submit (() -> nativeScope .setTag (key , value ) );
75
93
} catch (Throwable e ) {
76
94
options .getLogger ().log (SentryLevel .ERROR , e , "Scope sync setTag(%s) has an error." , key );
77
95
}
@@ -80,7 +98,7 @@ public void setTag(final @NotNull String key, final @NotNull String value) {
80
98
@ Override
81
99
public void removeTag (final @ NotNull String key ) {
82
100
try {
83
- nativeScope .removeTag (key );
101
+ options . getExecutorService (). submit (() -> nativeScope .removeTag (key ) );
84
102
} catch (Throwable e ) {
85
103
options .getLogger ().log (SentryLevel .ERROR , e , "Scope sync removeTag(%s) has an error." , key );
86
104
}
@@ -89,7 +107,7 @@ public void removeTag(final @NotNull String key) {
89
107
@ Override
90
108
public void setExtra (final @ NotNull String key , final @ NotNull String value ) {
91
109
try {
92
- nativeScope .setExtra (key , value );
110
+ options . getExecutorService (). submit (() -> nativeScope .setExtra (key , value ) );
93
111
} catch (Throwable e ) {
94
112
options .getLogger ().log (SentryLevel .ERROR , e , "Scope sync setExtra(%s) has an error." , key );
95
113
}
@@ -98,7 +116,7 @@ public void setExtra(final @NotNull String key, final @NotNull String value) {
98
116
@ Override
99
117
public void removeExtra (final @ NotNull String key ) {
100
118
try {
101
- nativeScope .removeExtra (key );
119
+ options . getExecutorService (). submit (() -> nativeScope .removeExtra (key ) );
102
120
} catch (Throwable e ) {
103
121
options
104
122
.getLogger ()
0 commit comments