Program: 175426
Project: 175426
Buggy source:
private void setUpIdeaMenuItems(){
  final int RADIUS=mFab.getWidth() * 2;
  final int RADII=(int)(Math.sqrt(2) * RADIUS / 2);
  final int DURATION=2000;
  final int DELAY=500;
  FloatingActionButton fab1=(FloatingActionButton)findViewById(R.id.item_p1);
  AnimationSet set1=new AnimationSet(true);
  set1.setInterpolator(new AccelerateDecelerateInterpolator());
  set1.setDuration(DURATION);
  set1.setFillAfter(true);
  TranslateAnimation tr1=new TranslateAnimation(0f,0f,0f,-RADIUS);
  ScaleAnimation sc1=new ScaleAnimation(0f,1f,0f,1f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
  set1.addAnimation(tr1);
  set1.addAnimation(sc1);
  set1.setAnimationListener(new Animation.AnimationListener(){
    @Override public void onAnimationStart(    Animation animation){
    }
    @Override public void onAnimationEnd(    Animation animation){
      FloatingActionButton fab1=(FloatingActionButton)findViewById(R.id.item_p1);
      RelativeLayout.LayoutParams params=(RelativeLayout.LayoutParams)fab1.getLayoutParams();
      params.setMargins(0,0,0,RADIUS);
      fab1.setLayoutParams(params);
      fab1.clearAnimation();
    }
    @Override public void onAnimationRepeat(    Animation animation){
    }
  }
);
  FloatingActionButton fab2=(FloatingActionButton)findViewById(R.id.item_p2);
  AnimationSet set2=new AnimationSet(true);
  set2.setInterpolator(new AccelerateDecelerateInterpolator());
  set2.setDuration(DURATION);
  set2.setStartOffset(DELAY);
  set2.setFillAfter(true);
  TranslateAnimation tr2=new TranslateAnimation(0f,0f,-RADII,-RADII);
  ScaleAnimation sc2=new ScaleAnimation(0f,1f,0f,1f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
  set2.addAnimation(tr2);
  set2.addAnimation(sc2);
  set2.setAnimationListener(new Animation.AnimationListener(){
    @Override public void onAnimationStart(    Animation animation){
    }
    @Override public void onAnimationEnd(    Animation animation){
      FloatingActionButton fab2=(FloatingActionButton)findViewById(R.id.item_p2);
      RelativeLayout.LayoutParams params=(RelativeLayout.LayoutParams)fab2.getLayoutParams();
      params.setMargins(0,0,RADII,RADII);
      fab2.setLayoutParams(params);
      fab2.clearAnimation();
    }
    @Override public void onAnimationRepeat(    Animation animation){
    }
  }
);
  FloatingActionButton fab3=(FloatingActionButton)findViewById(R.id.item_p3);
  AnimationSet set3=new AnimationSet(true);
  set3.setInterpolator(new AccelerateDecelerateInterpolator());
  set3.setDuration(DURATION);
  set3.setStartOffset(2 * DELAY);
  set3.setFillAfter(true);
  TranslateAnimation tr3=new TranslateAnimation(0f,0f,-RADII,0f);
  ScaleAnimation sc3=new ScaleAnimation(0f,1f,0f,1f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
  set3.addAnimation(tr3);
  set3.addAnimation(sc3);
  set3.setAnimationListener(new Animation.AnimationListener(){
    @Override public void onAnimationStart(    Animation animation){
    }
    @Override public void onAnimationEnd(    Animation animation){
      FloatingActionButton fab3=(FloatingActionButton)findViewById(R.id.item_p3);
      RelativeLayout.LayoutParams params=(RelativeLayout.LayoutParams)fab3.getLayoutParams();
      params.setMargins(0,0,RADII,0);
      fab3.setLayoutParams(params);
      fab3.clearAnimation();
    }
    @Override public void onAnimationRepeat(    Animation animation){
    }
  }
);
  fab1.startAnimation(set1);
  fab2.startAnimation(set2);
  fab3.startAnimation(set3);
}

Fixed version (ground truth):
private void setUpIdeaMenuItems(){
  final int RADIUS=mFab.getWidth() * 2;
  final int RADII=(int)(Math.sqrt(2) * RADIUS / 2);
  final int DURATION=250;
  final int DELAY=30;
  final FloatingActionButton fab1=(FloatingActionButton)findViewById(R.id.item_p1);
  AnimationSet set1=new AnimationSet(true);
  set1.setInterpolator(new AccelerateDecelerateInterpolator());
  set1.setDuration(DURATION);
  set1.setFillAfter(true);
  TranslateAnimation tr1=new TranslateAnimation(0f,0f,0f,-RADIUS);
  ScaleAnimation sc1=new ScaleAnimation(0f,1f,0f,1f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
  set1.addAnimation(tr1);
  set1.addAnimation(sc1);
  set1.setAnimationListener(new Animation.AnimationListener(){
    @Override public void onAnimationStart(    Animation animation){
    }
    @Override public void onAnimationEnd(    Animation animation){
      RelativeLayout.LayoutParams params=(RelativeLayout.LayoutParams)fab1.getLayoutParams();
      params.setMargins(0,0,0,RADIUS);
      fab1.setLayoutParams(params);
      fab1.clearAnimation();
    }
    @Override public void onAnimationRepeat(    Animation animation){
    }
  }
);
  final FloatingActionButton fab2=(FloatingActionButton)findViewById(R.id.item_p2);
  AnimationSet set2=new AnimationSet(true);
  set2.setInterpolator(new AccelerateDecelerateInterpolator());
  set2.setDuration(DURATION);
  set2.setStartOffset(DELAY);
  set2.setFillAfter(true);
  TranslateAnimation tr2=new TranslateAnimation(0f,-RADII,0f,-RADII);
  ScaleAnimation sc2=new ScaleAnimation(0f,1f,0f,1f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
  set2.addAnimation(tr2);
  set2.addAnimation(sc2);
  set2.setAnimationListener(new Animation.AnimationListener(){
    @Override public void onAnimationStart(    Animation animation){
    }
    @Override public void onAnimationEnd(    Animation animation){
      RelativeLayout.LayoutParams params=(RelativeLayout.LayoutParams)fab2.getLayoutParams();
      params.setMargins(0,0,RADII,RADII);
      fab2.setLayoutParams(params);
      fab2.clearAnimation();
    }
    @Override public void onAnimationRepeat(    Animation animation){
    }
  }
);
  final FloatingActionButton fab3=(FloatingActionButton)findViewById(R.id.item_p3);
  AnimationSet set3=new AnimationSet(true);
  set3.setInterpolator(new AccelerateDecelerateInterpolator());
  set3.setDuration(DURATION);
  set3.setStartOffset(2 * DELAY);
  set3.setFillAfter(true);
  TranslateAnimation tr3=new TranslateAnimation(0f,-RADIUS,0f,0f);
  ScaleAnimation sc3=new ScaleAnimation(0f,1f,0f,1f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
  set3.addAnimation(tr3);
  set3.addAnimation(sc3);
  set3.setAnimationListener(new Animation.AnimationListener(){
    @Override public void onAnimationStart(    Animation animation){
    }
    @Override public void onAnimationEnd(    Animation animation){
      RelativeLayout.LayoutParams params=(RelativeLayout.LayoutParams)fab3.getLayoutParams();
      params.setMargins(0,0,RADIUS,0);
      fab3.setLayoutParams(params);
      fab3.clearAnimation();
      IdeaMenuItemListener.setReady(true);
    }
    @Override public void onAnimationRepeat(    Animation animation){
    }
  }
);
  findViewById(R.id.items_priority).setVisibility(View.VISIBLE);
  IdeaMenuItemListener.setReady(false);
  fab1.startAnimation(set1);
  fab2.startAnimation(set2);
  fab3.startAnimation(set3);
}