Merge "Catch RejectedExecutionException for DisplayChanged from WM" into 24D1-dev
diff --git a/core/java/android/app/servertransaction/ClientTransactionListenerController.java b/core/java/android/app/servertransaction/ClientTransactionListenerController.java
index 1a8136e..53cec08 100644
--- a/core/java/android/app/servertransaction/ClientTransactionListenerController.java
+++ b/core/java/android/app/servertransaction/ClientTransactionListenerController.java
@@ -23,9 +23,12 @@
import android.annotation.NonNull;
import android.app.ActivityThread;
import android.hardware.display.DisplayManagerGlobal;
+import android.util.Log;
import com.android.internal.annotations.VisibleForTesting;
+import java.util.concurrent.RejectedExecutionException;
+
/**
* Singleton controller to manage listeners to individual {@link ClientTransaction}.
*
@@ -33,6 +36,8 @@
*/
public class ClientTransactionListenerController {
+ private static final String TAG = "ClientTransactionListenerController";
+
private static ClientTransactionListenerController sController;
private final DisplayManagerGlobal mDisplayManager;
@@ -73,6 +78,10 @@
// Not enable for system server.
return;
}
- mDisplayManager.handleDisplayChangeFromWindowManager(displayId);
+ try {
+ mDisplayManager.handleDisplayChangeFromWindowManager(displayId);
+ } catch (RejectedExecutionException e) {
+ Log.w(TAG, "Failed to notify DisplayListener because the Handler is shutting down");
+ }
}
}