Program: 192924
Project: 192924
Buggy source:
private boolean applyAnimationLocked(AppWindowToken atoken,WindowManager.LayoutParams lp,int transit,boolean enter,boolean isVoiceInteraction){
  if (okToDisplay()) {
    DisplayInfo displayInfo=getDefaultDisplayInfoLocked();
    final int width=displayInfo.appWidth;
    final int height=displayInfo.appHeight;
    if (DEBUG_APP_TRANSITIONS || DEBUG_ANIM)     Slog.v(TAG_WM,"String_Node_Str" + atoken);
    final WindowState win=atoken.findMainWindow();
    final Rect frame=new Rect(0,0,width,height);
    final Rect insets=new Rect();
    Rect surfaceInsets=null;
    final boolean fullscreen=win != null && win.isFrameFullscreen(displayInfo);
    final boolean freeform=win != null && win.inFreeformWorkspace();
    final boolean docked=win != null && win.inDockedWorkspace();
    if (win != null) {
      if (freeform) {
        frame.set(win.mFrame);
      }
 else {
        frame.set(win.mContainingFrame);
      }
      surfaceInsets=win.getAttrs().surfaceInsets;
      if (fullscreen || docked) {
        insets.set(win.mContentInsets);
      }
    }
    if (atoken.mLaunchTaskBehind) {
      enter=false;
    }
    if (DEBUG_APP_TRANSITIONS)     Slog.d(TAG_WM,"String_Node_Str" + "String_Node_Str" + AppTransition.appTransitionToString(transit) + "String_Node_Str"+ enter+ "String_Node_Str"+ frame+ "String_Node_Str"+ insets+ "String_Node_Str"+ surfaceInsets);
    Animation a=mAppTransition.loadAnimation(lp,transit,enter,mCurConfiguration.orientation,frame,insets,surfaceInsets,isVoiceInteraction,!fullscreen,atoken.mTask.mTaskId);
    if (a != null) {
      if (DEBUG_ANIM) {
        RuntimeException e=null;
        if (!HIDE_STACK_CRAWLS) {
          e=new RuntimeException();
          e.fillInStackTrace();
        }
        Slog.v(TAG_WM,"String_Node_Str" + a + "String_Node_Str"+ atoken,e);
      }
      final int containingWidth=frame.width();
      final int containingHeight=frame.height();
      atoken.mAppAnimator.setAnimation(a,containingWidth,containingHeight,mAppTransition.canSkipFirstFrame());
    }
  }
 else {
    atoken.mAppAnimator.clearAnimation();
  }
  return atoken.mAppAnimator.animation != null;
}

Fixed version (ground truth):
private boolean applyAnimationLocked(AppWindowToken atoken,WindowManager.LayoutParams lp,int transit,boolean enter,boolean isVoiceInteraction){
  if (okToDisplay()) {
    DisplayInfo displayInfo=getDefaultDisplayInfoLocked();
    final int width=displayInfo.appWidth;
    final int height=displayInfo.appHeight;
    if (DEBUG_APP_TRANSITIONS || DEBUG_ANIM)     Slog.v(TAG_WM,"String_Node_Str" + atoken);
    final WindowState win=atoken.findMainWindow();
    final Rect frame=new Rect(0,0,width,height);
    final Rect insets=new Rect();
    Rect surfaceInsets=null;
    final boolean fullscreen=win != null && win.isFrameFullscreen(displayInfo);
    final boolean freeform=win != null && win.inFreeformWorkspace();
    final boolean docked=win != null && win.inDockedWorkspace();
    if (win != null) {
      if (freeform) {
        frame.set(win.mFrame);
      }
 else {
        frame.set(win.mContainingFrame);
      }
      surfaceInsets=win.getAttrs().surfaceInsets;
      if (fullscreen || docked) {
        insets.set(win.mContentInsets);
      }
    }
    if (atoken.mLaunchTaskBehind) {
      enter=false;
    }
    if (DEBUG_APP_TRANSITIONS)     Slog.d(TAG_WM,"String_Node_Str" + "String_Node_Str" + AppTransition.appTransitionToString(transit) + "String_Node_Str"+ enter+ "String_Node_Str"+ frame+ "String_Node_Str"+ insets+ "String_Node_Str"+ surfaceInsets);
    Animation a=mAppTransition.loadAnimation(lp,transit,enter,mCurConfiguration.orientation,frame,insets,surfaceInsets,isVoiceInteraction,!fullscreen,atoken.mTask.mTaskId);
    if (a != null) {
      if (DEBUG_ANIM)       logWithStack(TAG,"String_Node_Str" + a + "String_Node_Str"+ atoken);
      final int containingWidth=frame.width();
      final int containingHeight=frame.height();
      atoken.mAppAnimator.setAnimation(a,containingWidth,containingHeight,mAppTransition.canSkipFirstFrame());
    }
  }
 else {
    atoken.mAppAnimator.clearAnimation();
  }
  return atoken.mAppAnimator.animation != null;
}