From d93da5c6e21d895a49e3cc224a2dfb6fb310a70c Mon Sep 17 00:00:00 2001 From: Andrii Kulian Date: Sat, 22 Jul 2017 14:59:51 -0700 Subject: [PATCH] Fix NPE in ActivityView on surface destruction Instance variable mSurface in ActivityView was not updated after surface destroy/create cycle, which lead to NPE when we were trying to release it again after second destroy callback. Bug: 63338670 Test: Create app with activityView, cause activity restart. Change-Id: I96447ebe77d175050565641ba94b748d2b633d99 --- core/java/android/app/ActivityView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/java/android/app/ActivityView.java b/core/java/android/app/ActivityView.java index 5dd47acfb9406..9f1e98399dce3 100644 --- a/core/java/android/app/ActivityView.java +++ b/core/java/android/app/ActivityView.java @@ -232,8 +232,8 @@ public class ActivityView extends ViewGroup { private class SurfaceCallback implements SurfaceHolder.Callback { @Override public void surfaceCreated(SurfaceHolder surfaceHolder) { + mSurface = mSurfaceView.getHolder().getSurface(); if (mVirtualDisplay == null) { - mSurface = mSurfaceView.getHolder().getSurface(); initVirtualDisplay(); if (mVirtualDisplay != null && mActivityViewCallback != null) { mActivityViewCallback.onActivityViewReady(ActivityView.this);