11package com .bugsnag ;
22
3- import java .util .ArrayList ;
4- import java .util .Arrays ;
5- import java .util .Collections ;
6- import java .util .Map ;
7- import java .util .HashMap ;
8- import java .util .List ;
9- import java .util .logging .Logger ;
10- import java .util .Map ;
11- import java .lang .String ;
12- import java .lang .NumberFormatException ;
13- import java .io .IOException ;
14-
3+ import android .app .Activity ;
4+ import android .content .Context ;
5+ import android .support .annotation .NonNull ;
6+
7+ import com .bugsnag .android .BreadcrumbType ;
8+ import com .bugsnag .android .Bugsnag ;
9+ import com .bugsnag .android .Callback ;
10+ import com .bugsnag .android .Client ;
11+ import com .bugsnag .android .Configuration ;
12+ import com .bugsnag .android .JsonStream ;
13+ import com .bugsnag .android .MetaData ;
14+ import com .bugsnag .android .Report ;
15+ import com .bugsnag .android .Severity ;
16+ import com .facebook .react .ReactPackage ;
1517import com .facebook .react .bridge .JavaScriptModule ;
1618import com .facebook .react .bridge .NativeModule ;
1719import com .facebook .react .bridge .ReactApplicationContext ;
2123import com .facebook .react .bridge .ReadableArray ;
2224import com .facebook .react .bridge .ReadableMap ;
2325import com .facebook .react .bridge .ReadableMapKeySetIterator ;
24- import com .facebook .react .ReactPackage ;
2526import com .facebook .react .uimanager .ViewManager ;
2627
27- import android .content .Context ;
28- import android .app .Activity ;
29-
30- import com .bugsnag .android .*;
28+ import java .io .IOException ;
29+ import java .util .Arrays ;
30+ import java .util .Collections ;
31+ import java .util .HashMap ;
32+ import java .util .List ;
33+ import java .util .Map ;
34+ import java .util .logging .Logger ;
3135
3236
3337public class BugsnagReactNative extends ReactContextBaseJavaModule {
@@ -113,7 +117,7 @@ public void notifyBlocking(ReadableMap payload, boolean blocking, com.facebook.r
113117 final String errorMessage = payload .getString ("errorMessage" );
114118 final String rawStacktrace = payload .getString ("stacktrace" );
115119
116- logger .info (String .format ("Sending exception: %s - %s\n " ,
120+ logger .info (String .format ("Sending exception: %s - %s %s \n " ,
117121 errorClass , errorMessage , rawStacktrace ));
118122 JavaScriptException exc = new JavaScriptException (errorClass ,
119123 errorMessage ,
@@ -152,7 +156,7 @@ public void clearUser() {
152156 * Convert a typed map into a string Map
153157 */
154158 private Map <String , String > readStringMap (ReadableMap map ) {
155- Map output = new HashMap <String , String >();
159+ Map < String , String > output = new HashMap <>();
156160 ReadableMapKeySetIterator iterator = map .keySetIterator ();
157161 while (iterator .hasNextKey ()) {
158162 String key = iterator .nextKey ();
@@ -176,7 +180,7 @@ private Map<String, String> readStringMap(ReadableMap map) {
176180 }
177181
178182 private Client getClient (String apiKey ) {
179- Client client = null ;
183+ Client client ;
180184 try {
181185 client = Bugsnag .getClient ();
182186 } catch (IllegalStateException exception ) {
@@ -199,7 +203,7 @@ private BreadcrumbType parseBreadcrumbType(String value) {
199203 }
200204
201205 private void configureRuntimeOptions (Client client , ReadableMap options ) {
202- client .setIgnoreClasses (new String [] { "com.facebook.react.common.JavascriptException" } );
206+ client .setIgnoreClasses ("com.facebook.react.common.JavascriptException" );
203207 Configuration config = client .getConfig ();
204208 if (options .hasKey ("appVersion" )) {
205209 String version = options .getString ("appVersion" );
@@ -278,6 +282,7 @@ public List<Class<? extends JavaScriptModule>> createJSModules() {
278282 return Collections .emptyList ();
279283 }
280284
285+ @ SuppressWarnings ("rawtypes" ) // the ReactPackage interface uses a raw type, ignore it
281286 @ Override
282287 public List <ViewManager > createViewManagers (
283288 ReactApplicationContext reactContext ) {
@@ -339,7 +344,7 @@ Severity parseSeverity(String value) {
339344 * Convert a typed map from JS into a Map
340345 */
341346 Map <String , Object > readObjectMap (ReadableMap map ) {
342- Map output = new HashMap <String , Object >();
347+ Map < String , Object > output = new HashMap <>();
343348 ReadableMapKeySetIterator iterator = map .keySetIterator ();
344349
345350 while (iterator .hasNextKey ()) {
@@ -380,8 +385,11 @@ public void beforeNotify(Report report) {
380385 MetaData reportMetadata = report .getError ().getMetaData ();
381386 for (String tab : metadata .keySet ()) {
382387 Object value = metadata .get (tab );
388+
383389 if (value instanceof Map ) {
384- Map <String , Object > values = (Map <String , Object >)value ;
390+ @ SuppressWarnings ("unchecked" ) // ignore type erasure when casting Map
391+ Map <String , Object > values = (Map <String , Object >) value ;
392+
385393 for (String key : values .keySet ()) {
386394 reportMetadata .addToTab (tab , key , values .get (key ));
387395 }
@@ -395,7 +403,10 @@ public void beforeNotify(Report report) {
395403 * Creates a streamable exception with a JavaScript stacktrace
396404 */
397405class JavaScriptException extends Exception implements JsonStream .Streamable {
406+
398407 private static final String EXCEPTION_TYPE = "browserjs" ;
408+ private static final long serialVersionUID = 1175784680140218622L ;
409+
399410 private final String name ;
400411 private final String rawStacktrace ;
401412
@@ -405,7 +416,7 @@ class JavaScriptException extends Exception implements JsonStream.Streamable {
405416 this .rawStacktrace = rawStacktrace ;
406417 }
407418
408- public void toStream (JsonStream writer ) throws IOException {
419+ public void toStream (@ NonNull JsonStream writer ) throws IOException {
409420 writer .beginObject ();
410421 writer .name ("errorClass" ).value (name );
411422 writer .name ("message" ).value (getLocalizedMessage ());
0 commit comments