From d7b5ab9f236161e88a1a8f7046a6761609303ddf Mon Sep 17 00:00:00 2001 From: huangdarwin Date: Fri, 21 Jul 2023 17:59:07 +0100 Subject: [PATCH] Add Thread.currentThread().interrupt() for InterruptedExceptions. PiperOrigin-RevId: 549975878 --- ...ltVideoFrameProcessorVideoFrameRenderingTest.java | 2 ++ .../java/androidx/media3/effect/BitmapOverlay.java | 5 ++++- .../transformer/TransformerAndroidTestRunner.java | 12 ++++++++---- ...ultVideoFrameProcessorTextureOutputPixelTest.java | 1 + .../androidx/media3/transformer/mh/FileUtil.java | 5 ++++- .../media3/transformer/ExoPlayerAssetLoaderTest.java | 1 + .../media3/transformer/ImageAssetLoaderTest.java | 1 + .../media3/transformer/MediaItemExportTest.java | 1 + .../media3/transformer/TextureAssetLoaderTest.java | 1 + 9 files changed, 23 insertions(+), 6 deletions(-) diff --git a/libraries/effect/src/androidTest/java/androidx/media3/effect/DefaultVideoFrameProcessorVideoFrameRenderingTest.java b/libraries/effect/src/androidTest/java/androidx/media3/effect/DefaultVideoFrameProcessorVideoFrameRenderingTest.java index 99b7e9ea97..29296a8c6a 100644 --- a/libraries/effect/src/androidTest/java/androidx/media3/effect/DefaultVideoFrameProcessorVideoFrameRenderingTest.java +++ b/libraries/effect/src/androidTest/java/androidx/media3/effect/DefaultVideoFrameProcessorVideoFrameRenderingTest.java @@ -112,6 +112,7 @@ public final class DefaultVideoFrameProcessorVideoFrameRenderingTest { // to swap buffers, to avoid this behavior. Thread.sleep(PER_FRAME_RENDERING_WAIT_TIME_MS); } catch (InterruptedException e) { + Thread.currentThread().interrupt(); throw new IllegalStateException(e); } }, @@ -228,6 +229,7 @@ public final class DefaultVideoFrameProcessorVideoFrameRenderingTest { // to swap buffers, to avoid this behavior. Thread.sleep(PER_FRAME_RENDERING_WAIT_TIME_MS); } catch (InterruptedException e) { + Thread.currentThread().interrupt(); throw new IllegalStateException(e); } }, diff --git a/libraries/effect/src/main/java/androidx/media3/effect/BitmapOverlay.java b/libraries/effect/src/main/java/androidx/media3/effect/BitmapOverlay.java index 88738de8b5..0bb3ab25b6 100644 --- a/libraries/effect/src/main/java/androidx/media3/effect/BitmapOverlay.java +++ b/libraries/effect/src/main/java/androidx/media3/effect/BitmapOverlay.java @@ -146,7 +146,10 @@ public abstract class BitmapOverlay extends TextureOverlay { ListenableFuture future = bitmapLoader.loadBitmap(overlayBitmapUri); try { lastBitmap = future.get(); - } catch (ExecutionException | InterruptedException e) { + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new VideoFrameProcessingException(e); + } catch (ExecutionException e) { throw new VideoFrameProcessingException(e); } } diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java index b34cc31f55..b56faae0c6 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java @@ -202,10 +202,13 @@ public class TransformerAndroidTestRunner { throw exportTestResult.analysisException; } return exportTestResult; - } catch (InterruptedException - | IOException - | TimeoutException - | UnsupportedOperationException e) { + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + resultJson.put( + "exportResult", + new JSONObject().put("testException", AndroidTestUtil.exceptionAsJsonObject(e))); + throw e; + } catch (IOException | TimeoutException | UnsupportedOperationException e) { resultJson.put( "exportResult", new JSONObject().put("testException", AndroidTestUtil.exceptionAsJsonObject(e))); @@ -404,6 +407,7 @@ public class TransformerAndroidTestRunner { /* distortedVideoPath= */ outputVideoFile.getPath()); testResultBuilder.setSsim(ssim); } catch (InterruptedException interruptedException) { + Thread.currentThread().interrupt(); // InterruptedException is a special unexpected case because it is not related to Ssim // calculation, so it should be thrown, rather than processed as part of the // ExportTestResult. diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/DefaultVideoFrameProcessorTextureOutputPixelTest.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/DefaultVideoFrameProcessorTextureOutputPixelTest.java index 1015ce79d4..61f08c1287 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/DefaultVideoFrameProcessorTextureOutputPixelTest.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/DefaultVideoFrameProcessorTextureOutputPixelTest.java @@ -558,6 +558,7 @@ public final class DefaultVideoFrameProcessorTextureOutputPixelTest { try { videoFrameProcessorTestRunner.endFrameProcessing(VIDEO_FRAME_PROCESSING_WAIT_MS / 2); } catch (InterruptedException e) { + Thread.currentThread().interrupt(); throw new VideoFrameProcessingException(e); } releaseOutputTextureCallback.release(presentationTimeUs); diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/FileUtil.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/FileUtil.java index af8dbe07f9..e4c05ad1a8 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/FileUtil.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/mh/FileUtil.java @@ -46,7 +46,10 @@ import java.util.concurrent.ExecutionException; trackGroupArray = MetadataRetriever.retrieveMetadata(context, MediaItem.fromUri("file://" + filePath)) .get(); - } catch (ExecutionException | InterruptedException e) { + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new IllegalStateException(e); + } catch (ExecutionException e) { throw new IllegalStateException(e); } diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/ExoPlayerAssetLoaderTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/ExoPlayerAssetLoaderTest.java index ea49f0530e..af7061ff1f 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/ExoPlayerAssetLoaderTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/ExoPlayerAssetLoaderTest.java @@ -116,6 +116,7 @@ public class ExoPlayerAssetLoaderTest { try { Thread.sleep(10); } catch (InterruptedException e) { + Thread.currentThread().interrupt(); exceptionRef.set(e); } } diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/ImageAssetLoaderTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/ImageAssetLoaderTest.java index 2e808b4841..7a8948cdf7 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/ImageAssetLoaderTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/ImageAssetLoaderTest.java @@ -94,6 +94,7 @@ public class ImageAssetLoaderTest { try { Thread.sleep(10); } catch (InterruptedException e) { + Thread.currentThread().interrupt(); exceptionRef.set(e); } } diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java index df8455f323..fecaceba7f 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/MediaItemExportTest.java @@ -1239,6 +1239,7 @@ public final class MediaItemExportTest { try { Thread.sleep(delayBetweenReadsMs); } catch (InterruptedException e) { + Thread.currentThread().interrupt(); throw new IllegalStateException(e); } return extractor.read(input, seekPosition); diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/TextureAssetLoaderTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/TextureAssetLoaderTest.java index b34a0b5cdc..27b5a72f92 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/TextureAssetLoaderTest.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/TextureAssetLoaderTest.java @@ -95,6 +95,7 @@ public class TextureAssetLoaderTest { try { Thread.sleep(10); } catch (InterruptedException e) { + Thread.currentThread().interrupt(); exceptionRef.set(e); } }