From b40b1e679e3a2622b5aeff940106888c41ffbdd9 Mon Sep 17 00:00:00 2001 From: Gijs Weterings Date: Tue, 18 Mar 2025 06:08:17 -0700 Subject: [PATCH] Fix Nullsafe FIXMEs for MultipartStreamReader.java (#50056) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/50056 Gone trough all the FIXMEs added in the previous diff by the nullsafe tool, marked the class as nullsafe and ensured no remaining violations. Changelog: [Android][Fixed] Made MultipartStreamReader.java nullsafe Reviewed By: mdvacca Differential Revision: D71126393 fbshipit-source-id: 3b621be82cd874c608cb610ba35dff0be7cbd195 --- .../facebook/react/devsupport/MultipartStreamReader.java | 6 ++++-- .../facebook/react/devsupport/MultipartStreamReaderTest.kt | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/MultipartStreamReader.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/MultipartStreamReader.java index 7c343d41b81..4c99f9bee75 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/MultipartStreamReader.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/MultipartStreamReader.java @@ -7,7 +7,9 @@ package com.facebook.react.devsupport; +import com.facebook.infer.annotation.Nullsafe; import java.io.IOException; +import java.util.Collections; import java.util.HashMap; import java.util.Map; import okio.Buffer; @@ -15,6 +17,7 @@ import okio.BufferedSource; import okio.ByteString; /** Utility class to parse the body of a response of type multipart/mixed. */ +@Nullsafe(Nullsafe.Mode.LOCAL) class MultipartStreamReader { // Standard line separator for HTTP. private static final String CRLF = "\r\n"; @@ -60,8 +63,7 @@ class MultipartStreamReader { ByteString marker = ByteString.encodeUtf8(CRLF + CRLF); long indexOfMarker = chunk.indexOf(marker); if (indexOfMarker == -1) { - // NULLSAFE_FIXME[Parameter Not Nullable] - listener.onChunkComplete(null, chunk, done); + listener.onChunkComplete(Collections.emptyMap(), chunk, done); } else { Buffer headers = new Buffer(); Buffer body = new Buffer(); diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/devsupport/MultipartStreamReaderTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/devsupport/MultipartStreamReaderTest.kt index b6e56307d31..2a693a8c1ee 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/devsupport/MultipartStreamReaderTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/devsupport/MultipartStreamReaderTest.kt @@ -33,7 +33,7 @@ class MultipartStreamReaderTest { val callback: CallCountTrackingChunkCallback = object : CallCountTrackingChunkCallback() { - override fun onChunkComplete(headers: Map?, body: Buffer, done: Boolean) { + override fun onChunkComplete(headers: Map, body: Buffer, done: Boolean) { super.onChunkComplete(headers, body, done) assertThat(done).isTrue @@ -68,7 +68,7 @@ class MultipartStreamReaderTest { val callback: CallCountTrackingChunkCallback = object : CallCountTrackingChunkCallback() { - override fun onChunkComplete(headers: Map?, body: Buffer, done: Boolean) { + override fun onChunkComplete(headers: Map, body: Buffer, done: Boolean) { super.onChunkComplete(headers, body, done) assertThat(done).isEqualTo(callCount == 3) @@ -125,7 +125,7 @@ class MultipartStreamReaderTest { var callCount = 0 private set - override fun onChunkComplete(headers: Map?, body: Buffer, done: Boolean) { + override fun onChunkComplete(headers: Map, body: Buffer, done: Boolean) { callCount++ }