Bug 1369892 - Silence findbugs dodgy casting warning r=nalexander draft
authorGrigory Kruglov <gkruglov@mozilla.com>
Fri, 02 Jun 2017 18:15:32 -0400
changeset 588500 328779986c76216b0942523f71f714e663824a50
parent 588445 d492bf600a105f8ae2ac57c9aea6a5fb1a55f4e7
child 588510 9ea8dc9769c7e950c2e08e7acbe2384502c0621a
push id62062
push userbmo:gkruglov@mozilla.com
push dateFri, 02 Jun 2017 22:16:31 +0000
reviewersnalexander
bugs1369892
milestone55.0a1
Bug 1369892 - Silence findbugs dodgy casting warning r=nalexander Strangely enough, this patch seems to appease findbugs. While dodgy indeed, I think this casting is acceptable in this case since we control both sides of the equation (sender & receiver of telemetry), but can't easily do away with casting. MozReview-Commit-ID: FBTkRqKPtxt
mobile/android/base/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBuilder.java
--- a/mobile/android/base/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBuilder.java
+++ b/mobile/android/base/java/org/mozilla/gecko/telemetry/pingbuilders/TelemetrySyncPingBuilder.java
@@ -126,17 +126,17 @@ public class TelemetrySyncPingBuilder ex
 
         if (devicesJSON.size() > 0) {
             payload.put("devices", devicesJSON);
         }
         return this;
     }
 
     public TelemetrySyncPingBuilder setError(@NonNull Serializable error) {
-        payload.put("failureReason", (ExtendedJSONObject) error);
+        payload.put("failureReason", castErrorObject(error));
         return this;
     }
 
     public TelemetrySyncPingBuilder setTook(long took) {
         payload.put("took", took);
         return this;
     }
 
@@ -154,9 +154,13 @@ public class TelemetrySyncPingBuilder ex
     /**
      * We broadcast this data via LocalBroadcastManager and control both sides of this code, so it
      * is acceptable to do an unchecked cast.
      */
     @SuppressWarnings("unchecked")
     private static HashMap<String, TelemetryStageCollector> castSyncData(final Serializable data) {
         return (HashMap<String, TelemetryStageCollector>) data;
     }
+
+    private static ExtendedJSONObject castErrorObject(final Serializable error) {
+        return (ExtendedJSONObject) error;
+    }
 }