Program: 192908
Project: 192908
Buggy source:
private void stepThumbnailAnimation(long currentTime){
  thumbnailTransformation.clear();
  final long animationFrameTime=getAnimationFrameTime(thumbnailAnimation,currentTime);
  thumbnailAnimation.getTransformation(animationFrameTime,thumbnailTransformation);
  thumbnailTransformation.getMatrix().preTranslate(thumbnailX,thumbnailY);
  ScreenRotationAnimation screenRotationAnimation=mAnimator.getScreenRotationAnimationLocked(Display.DEFAULT_DISPLAY);
  final boolean screenAnimation=screenRotationAnimation != null && screenRotationAnimation.isAnimating();
  if (screenAnimation) {
    thumbnailTransformation.postCompose(screenRotationAnimation.getEnterTransformation());
  }
  final float tmpFloats[]=mService.mTmpFloats;
  thumbnailTransformation.getMatrix().getValues(tmpFloats);
  if (SHOW_TRANSACTIONS)   WindowManagerService.logSurface(thumbnail,"String_Node_Str","String_Node_Str" + tmpFloats[Matrix.MTRANS_X] + "String_Node_Str"+ tmpFloats[Matrix.MTRANS_Y],null);
  thumbnail.setPosition(tmpFloats[Matrix.MTRANS_X],tmpFloats[Matrix.MTRANS_Y]);
  if (SHOW_TRANSACTIONS)   WindowManagerService.logSurface(thumbnail,"String_Node_Str","String_Node_Str" + thumbnailTransformation.getAlpha() + "String_Node_Str"+ thumbnailLayer+ "String_Node_Str"+ tmpFloats[Matrix.MSCALE_X]+ "String_Node_Str"+ tmpFloats[Matrix.MSKEW_Y]+ "String_Node_Str"+ tmpFloats[Matrix.MSKEW_X]+ "String_Node_Str"+ tmpFloats[Matrix.MSCALE_Y]+ "String_Node_Str",null);
  thumbnail.setAlpha(thumbnailTransformation.getAlpha());
  if (thumbnailForceAboveLayer > 0) {
    thumbnail.setLayer(thumbnailForceAboveLayer + 1);
  }
 else {
    thumbnail.setLayer(thumbnailLayer + WindowManagerService.WINDOW_LAYER_MULTIPLIER - WindowManagerService.LAYER_OFFSET_THUMBNAIL);
  }
  thumbnail.setMatrix(tmpFloats[Matrix.MSCALE_X],tmpFloats[Matrix.MSKEW_Y],tmpFloats[Matrix.MSKEW_X],tmpFloats[Matrix.MSCALE_Y]);
}

Fixed version (ground truth):
private void stepThumbnailAnimation(long currentTime){
  thumbnailTransformation.clear();
  final long animationFrameTime=getAnimationFrameTime(thumbnailAnimation,currentTime);
  thumbnailAnimation.getTransformation(animationFrameTime,thumbnailTransformation);
  thumbnailTransformation.getMatrix().preTranslate(thumbnailX,thumbnailY);
  ScreenRotationAnimation screenRotationAnimation=mAnimator.getScreenRotationAnimationLocked(Display.DEFAULT_DISPLAY);
  final boolean screenAnimation=screenRotationAnimation != null && screenRotationAnimation.isAnimating();
  if (screenAnimation) {
    thumbnailTransformation.postCompose(screenRotationAnimation.getEnterTransformation());
  }
  final float tmpFloats[]=mService.mTmpFloats;
  thumbnailTransformation.getMatrix().getValues(tmpFloats);
  if (SHOW_TRANSACTIONS)   WindowManagerService.logSurface(thumbnail,"String_Node_Str","String_Node_Str" + tmpFloats[Matrix.MTRANS_X] + "String_Node_Str"+ tmpFloats[Matrix.MTRANS_Y]);
  thumbnail.setPosition(tmpFloats[Matrix.MTRANS_X],tmpFloats[Matrix.MTRANS_Y]);
  if (SHOW_TRANSACTIONS)   WindowManagerService.logSurface(thumbnail,"String_Node_Str","String_Node_Str" + thumbnailTransformation.getAlpha() + "String_Node_Str"+ thumbnailLayer+ "String_Node_Str"+ tmpFloats[Matrix.MSCALE_X]+ "String_Node_Str"+ tmpFloats[Matrix.MSKEW_Y]+ "String_Node_Str"+ tmpFloats[Matrix.MSKEW_X]+ "String_Node_Str"+ tmpFloats[Matrix.MSCALE_Y]+ "String_Node_Str");
  thumbnail.setAlpha(thumbnailTransformation.getAlpha());
  if (thumbnailForceAboveLayer > 0) {
    thumbnail.setLayer(thumbnailForceAboveLayer + 1);
  }
 else {
    thumbnail.setLayer(thumbnailLayer + WindowManagerService.WINDOW_LAYER_MULTIPLIER - WindowManagerService.LAYER_OFFSET_THUMBNAIL);
  }
  thumbnail.setMatrix(tmpFloats[Matrix.MSCALE_X],tmpFloats[Matrix.MSKEW_Y],tmpFloats[Matrix.MSKEW_X],tmpFloats[Matrix.MSCALE_Y]);
}