diff --git a/build.gradle b/build.gradle
index dee10d0..2b55cf0 100644
--- a/build.gradle
+++ b/build.gradle
@@ -252,7 +252,7 @@
 
     dependencies {
         if (useCheckerFramework) {
-            ext.checkerFrameworkVersion = '2.8.1'
+            ext.checkerFrameworkVersion = '2.8.2'
 
             // 2.4.0 is the last version of the Checker Framework compiler that supports annotations
             // in comments, though it should continue to work with newer versions of the Checker Framework.
diff --git a/impl_core/src/main/java/io/opencensus/implcore/trace/export/SpanExporterImpl.java b/impl_core/src/main/java/io/opencensus/implcore/trace/export/SpanExporterImpl.java
index 009c46a..32fb6c5 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/trace/export/SpanExporterImpl.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/trace/export/SpanExporterImpl.java
@@ -19,6 +19,7 @@
 import com.google.common.annotations.VisibleForTesting;
 import io.opencensus.common.Duration;
 import io.opencensus.common.ToLongFunction;
+import io.opencensus.implcore.internal.CheckerFrameworkUtils;
 import io.opencensus.implcore.internal.DaemonThreadFactory;
 import io.opencensus.implcore.trace.RecordEventsSpanImpl;
 import io.opencensus.metrics.DerivedLongCumulative;
@@ -318,13 +319,17 @@
       }
     }
 
-    @SuppressWarnings("argument.type.incompatible")
-    private void exportBatches(ArrayList<RecordEventsSpanImpl> spanList) {
+    private void exportBatches(ArrayList<RecordEventsSpanImpl> spansCopy) {
       ArrayList<SpanData> spanDataList = new ArrayList<>(bufferSize);
-      for (int i = 0; i < spanList.size(); i++) {
-        spanDataList.add(spanList.get(i).toSpanData());
+      for (int i = 0; i < spansCopy.size(); i++) {
+        spanDataList.add(spansCopy.get(i).toSpanData());
+
         // Remove the reference to the RecordEventsSpanImpl to allow GC to free the memory.
-        spanList.set(i, null);
+        // TODO: Refactor the handling of the spans list to remove this call to castNonNull. Setting
+        // the elements to null after they are read is safe because 'exportBatches' is only ever
+        // called on a copy of 'spans', and the copy is not reused.
+        spansCopy.set(i, (RecordEventsSpanImpl) CheckerFrameworkUtils.castNonNull(null));
+
         if (spanDataList.size() == bufferSize) {
           // One full batch, export it now. Wrap the list with unmodifiableList to ensure exporter
           // does not change the list.
