Skip to content
This repository was archived by the owner on Sep 14, 2020. It is now read-only.

Commit ce7abc4

Browse files
Merge pull request #259 from bugsnag/address-compiler-warnings
Address javac compiler warnings and intellij inspections
2 parents 7cdce08 + 08a0684 commit ce7abc4

3 files changed

Lines changed: 43 additions & 24 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
Changelog
22
=========
33

4+
## 2.X.X (TBD)
5+
6+
### Bug fixes
7+
8+
* (android) Address javac compiler warnings and intellij inspections
9+
[#250](https://github.com/bugsnag/bugsnag-react-native/issues/250)
10+
411
## 2.10.0 (2018-07-03)
512

613
This release alters the behaviour of the notifier to track sessions automatically.

android/src/main/java/com/bugsnag/BugsnagReactNative.java

Lines changed: 35 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
package 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;
1517
import com.facebook.react.bridge.JavaScriptModule;
1618
import com.facebook.react.bridge.NativeModule;
1719
import com.facebook.react.bridge.ReactApplicationContext;
@@ -21,13 +23,15 @@
2123
import com.facebook.react.bridge.ReadableArray;
2224
import com.facebook.react.bridge.ReadableMap;
2325
import com.facebook.react.bridge.ReadableMapKeySetIterator;
24-
import com.facebook.react.ReactPackage;
2526
import 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

3337
public 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
*/
397405
class 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());

examples/plain/android/app/src/main/java/com/bugsnagreactnativeexample/CrashyPackage.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public List<Class<? extends JavaScriptModule>> createJSModules() {
1616
return Collections.emptyList();
1717
}
1818

19+
@SuppressWarnings("rawtypes") // the ReactPackage interface uses a raw type, ignore it
1920
@Override
2021
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
2122
return Collections.emptyList();

0 commit comments

Comments
 (0)