Program: 2704
Project: 2704
Buggy source:
public View getView(int position,View convertView,ViewGroup parent){
  if (convertView == null) {
    convertView=createView(parent);
  }
  final ViewHolder holder=(ViewHolder)convertView.getTag();
  final int index=mRecentTaskDescriptions.size() - position - 1;
  final TaskDescription td=mRecentTaskDescriptions.get(index);
  holder.labelView.setText(td.getLabel());
  holder.thumbnailView.setContentDescription(td.getLabel());
  holder.loadedThumbnailAndIcon=td.isLoaded();
  if (td.isLoaded()) {
    updateThumbnail(holder,td.getThumbnail(),true,false);
    updateIcon(holder,td.getIcon(),true,false);
  }
  if (index == 0) {
    if (mAnimateIconOfFirstTask) {
      if (mItemToAnimateInWhenWindowAnimationIsFinished != null) {
        holder.iconView.setAlpha(1f);
        holder.iconView.setTranslationX(0f);
        holder.iconView.setTranslationY(0f);
        holder.labelView.setAlpha(1f);
        holder.labelView.setTranslationX(0f);
        holder.labelView.setTranslationY(0f);
        if (holder.calloutLine != null) {
          holder.calloutLine.setAlpha(1f);
          holder.calloutLine.setTranslationX(0f);
          holder.calloutLine.setTranslationY(0f);
        }
      }
      mItemToAnimateInWhenWindowAnimationIsFinished=null;
      final ViewTreeObserver observer=getViewTreeObserver();
      final OnGlobalLayoutListener animateFirstIcon=new OnGlobalLayoutListener(){
        public void onGlobalLayout(){
          if (mItemToAnimateInWhenWindowAnimationIsFinished != null) {
            holder.iconView.setAlpha(1f);
            holder.iconView.setTranslationX(0f);
            holder.iconView.setTranslationY(0f);
            holder.labelView.setAlpha(1f);
            holder.labelView.setTranslationX(0f);
            holder.labelView.setTranslationY(0f);
            if (holder.calloutLine != null) {
              holder.calloutLine.setAlpha(1f);
              holder.calloutLine.setTranslationX(0f);
              holder.calloutLine.setTranslationY(0f);
            }
          }
          mItemToAnimateInWhenWindowAnimationIsFinished=holder;
          int translation=-getResources().getDimensionPixelSize(R.dimen.status_bar_recents_app_icon_translate_distance);
          final Configuration config=getResources().getConfiguration();
          if (config.orientation == Configuration.ORIENTATION_PORTRAIT) {
            if (getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) {
              translation=-translation;
            }
            holder.iconView.setAlpha(0f);
            holder.iconView.setTranslationX(translation);
            holder.labelView.setAlpha(0f);
            holder.labelView.setTranslationX(translation);
            holder.calloutLine.setAlpha(0f);
            holder.calloutLine.setTranslationX(translation);
          }
 else {
            holder.iconView.setAlpha(0f);
            holder.iconView.setTranslationY(translation);
          }
          if (!mWaitingForWindowAnimation) {
            animateInIconOfFirstTask();
          }
          getViewTreeObserver().removeOnGlobalLayoutListener(this);
        }
      }
;
      observer.addOnGlobalLayoutListener(animateFirstIcon);
    }
  }
  holder.thumbnailView.setTag(td);
  holder.thumbnailView.setOnLongClickListener(new OnLongClickDelegate(convertView));
  holder.taskDescription=td;
  return convertView;
}

Fixed version (ground truth):
public View getView(int position,View convertView,ViewGroup parent){
  if (convertView == null) {
    convertView=createView(parent);
  }
  final ViewHolder holder=(ViewHolder)convertView.getTag();
  final int index=mRecentTaskDescriptions.size() - position - 1;
  final TaskDescription td=mRecentTaskDescriptions.get(index);
  holder.labelView.setText(td.getLabel());
  holder.thumbnailView.setContentDescription(td.getLabel());
  holder.loadedThumbnailAndIcon=td.isLoaded();
  if (td.isLoaded()) {
    updateThumbnail(holder,td.getThumbnail(),true,false);
    updateIcon(holder,td.getIcon(),true,false);
  }
  if (index == 0) {
    if (mAnimateIconOfFirstTask) {
      ViewHolder oldHolder=mItemToAnimateInWhenWindowAnimationIsFinished;
      if (oldHolder != null) {
        oldHolder.iconView.setAlpha(1f);
        oldHolder.iconView.setTranslationX(0f);
        oldHolder.iconView.setTranslationY(0f);
        oldHolder.labelView.setAlpha(1f);
        oldHolder.labelView.setTranslationX(0f);
        oldHolder.labelView.setTranslationY(0f);
        if (oldHolder.calloutLine != null) {
          oldHolder.calloutLine.setAlpha(1f);
          oldHolder.calloutLine.setTranslationX(0f);
          oldHolder.calloutLine.setTranslationY(0f);
        }
      }
      mItemToAnimateInWhenWindowAnimationIsFinished=null;
      final ViewTreeObserver observer=getViewTreeObserver();
      final OnGlobalLayoutListener animateFirstIcon=new OnGlobalLayoutListener(){
        public void onGlobalLayout(){
          ViewHolder oldHolder=mItemToAnimateInWhenWindowAnimationIsFinished;
          if (oldHolder != null) {
            oldHolder.iconView.setAlpha(1f);
            oldHolder.iconView.setTranslationX(0f);
            oldHolder.iconView.setTranslationY(0f);
            oldHolder.labelView.setAlpha(1f);
            oldHolder.labelView.setTranslationX(0f);
            oldHolder.labelView.setTranslationY(0f);
            if (oldHolder.calloutLine != null) {
              oldHolder.calloutLine.setAlpha(1f);
              oldHolder.calloutLine.setTranslationX(0f);
              oldHolder.calloutLine.setTranslationY(0f);
            }
          }
          mItemToAnimateInWhenWindowAnimationIsFinished=holder;
          int translation=-getResources().getDimensionPixelSize(R.dimen.status_bar_recents_app_icon_translate_distance);
          final Configuration config=getResources().getConfiguration();
          if (config.orientation == Configuration.ORIENTATION_PORTRAIT) {
            if (getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) {
              translation=-translation;
            }
            holder.iconView.setAlpha(0f);
            holder.iconView.setTranslationX(translation);
            holder.labelView.setAlpha(0f);
            holder.labelView.setTranslationX(translation);
            holder.calloutLine.setAlpha(0f);
            holder.calloutLine.setTranslationX(translation);
          }
 else {
            holder.iconView.setAlpha(0f);
            holder.iconView.setTranslationY(translation);
          }
          if (!mWaitingForWindowAnimation) {
            animateInIconOfFirstTask();
          }
          getViewTreeObserver().removeOnGlobalLayoutListener(this);
        }
      }
;
      observer.addOnGlobalLayoutListener(animateFirstIcon);
    }
  }
  holder.thumbnailView.setTag(td);
  holder.thumbnailView.setOnLongClickListener(new OnLongClickDelegate(convertView));
  holder.taskDescription=td;
  return convertView;
}