Fix VideoCaptureDeviceTest failed by RejectExecutionException
Ignore the RejectExecutionException since frame updating is no longer needed after surface and executor are released.
Bug: 268138834
Test: ./gradlew camera:camera-video:connectedAndroidTest
Change-Id: Ic8467ef4d13ad533d01ec693a8717832fe308297
diff --git a/camera/camera-video/src/androidTest/java/androidx/camera/video/VideoCaptureDeviceTest.kt b/camera/camera-video/src/androidTest/java/androidx/camera/video/VideoCaptureDeviceTest.kt
index 02f2e3b..4d7a118 100644
--- a/camera/camera-video/src/androidTest/java/androidx/camera/video/VideoCaptureDeviceTest.kt
+++ b/camera/camera-video/src/androidTest/java/androidx/camera/video/VideoCaptureDeviceTest.kt
@@ -44,6 +44,7 @@
import java.util.concurrent.ArrayBlockingQueue
import java.util.concurrent.CopyOnWriteArraySet
import java.util.concurrent.Executors
+import java.util.concurrent.RejectedExecutionException
import java.util.concurrent.TimeUnit
import kotlin.time.Duration.Companion.seconds
import kotlinx.coroutines.CompletableDeferred
@@ -404,10 +405,15 @@
attachToGLContext(GLUtil.getTexIdFromGLContext())
setOnFrameAvailableListener {
frameCountFlow.getAndUpdate { frameCount -> frameCount + 1 }
- executor.execute {
- if (!isReleased) {
- updateTexImage()
+ try {
+ executor.execute {
+ if (!isReleased) {
+ updateTexImage()
+ }
}
+ } catch (_: RejectedExecutionException) {
+ // Ignored since frame updating is no longer needed after surface
+ // and executor are released.
}
}
}