Program: 2722
Project: 2722
Buggy source:
@Override protected void onMeasure(int widthMeasureSpec,int heightMeasureSpec){
  int maxHeight=0;
  int maxWidth=0;
  int childState=0;
  int topInset=0;
  int bottomInset=0;
  measureChildWithMargins(mActionBarTop,widthMeasureSpec,0,heightMeasureSpec,0);
  LayoutParams lp=(LayoutParams)mActionBarTop.getLayoutParams();
  maxWidth=Math.max(maxWidth,mActionBarTop.getMeasuredWidth() + lp.leftMargin + lp.rightMargin);
  maxHeight=Math.max(maxHeight,mActionBarTop.getMeasuredHeight() + lp.topMargin + lp.bottomMargin);
  childState=combineMeasuredStates(childState,mActionBarTop.getMeasuredState());
  measureChildWithMargins(mActionBarBottom,widthMeasureSpec,0,heightMeasureSpec,0);
  lp=(LayoutParams)mActionBarBottom.getLayoutParams();
  maxWidth=Math.max(maxWidth,mActionBarBottom.getMeasuredWidth() + lp.leftMargin + lp.rightMargin);
  maxHeight=Math.max(maxHeight,mActionBarBottom.getMeasuredHeight() + lp.topMargin + lp.bottomMargin);
  childState=combineMeasuredStates(childState,mActionBarBottom.getMeasuredState());
  final int vis=getWindowSystemUiVisibility();
  final boolean stable=(vis & SYSTEM_UI_FLAG_LAYOUT_STABLE) != 0;
  if (stable) {
    topInset=mActionBarHeight;
    if (mActionBar != null && mActionBar.hasNonEmbeddedTabs()) {
      View tabs=mContainerView.getTabContainer();
      if (tabs != null) {
        topInset+=mActionBarHeight;
      }
    }
  }
 else   if (mActionBarTop.getVisibility() == VISIBLE) {
    topInset=mActionBarTop.getMeasuredHeight();
  }
  if (mActionView.isSplitActionBar()) {
    if (stable) {
      bottomInset=mActionBarHeight;
    }
 else {
      bottomInset=mActionBarBottom.getMeasuredHeight();
    }
  }
  mContentInsets.set(mBaseContentInsets);
  mInnerInsets.set(mBaseInnerInsets);
  if (!mOverlayMode && !stable) {
    mContentInsets.top+=topInset;
    mContentInsets.bottom+=bottomInset;
  }
 else {
    mInnerInsets.top+=topInset;
    mInnerInsets.bottom+=bottomInset;
  }
  applyInsets(mContent,mContentInsets,true,true,true,true);
  if (!mLastInnerInsets.equals(mInnerInsets)) {
    mLastInnerInsets.set(mInnerInsets);
    super.fitSystemWindows(mInnerInsets);
  }
  measureChildWithMargins(mContent,widthMeasureSpec,0,heightMeasureSpec,0);
  lp=(LayoutParams)mContent.getLayoutParams();
  maxWidth=Math.max(maxWidth,mContent.getMeasuredWidth() + lp.leftMargin + lp.rightMargin);
  maxHeight=Math.max(maxHeight,mContent.getMeasuredHeight() + lp.topMargin + lp.bottomMargin);
  childState=combineMeasuredStates(childState,mContent.getMeasuredState());
  maxWidth+=getPaddingLeft() + getPaddingRight();
  maxHeight+=getPaddingTop() + getPaddingBottom();
  maxHeight=Math.max(maxHeight,getSuggestedMinimumHeight());
  maxWidth=Math.max(maxWidth,getSuggestedMinimumWidth());
  setMeasuredDimension(resolveSizeAndState(maxWidth,widthMeasureSpec,childState),resolveSizeAndState(maxHeight,heightMeasureSpec,childState << MEASURED_HEIGHT_STATE_SHIFT));
}

Fixed version (ground truth):
@Override protected void onMeasure(int widthMeasureSpec,int heightMeasureSpec){
  pullChildren();
  int maxHeight=0;
  int maxWidth=0;
  int childState=0;
  int topInset=0;
  int bottomInset=0;
  measureChildWithMargins(mActionBarTop,widthMeasureSpec,0,heightMeasureSpec,0);
  LayoutParams lp=(LayoutParams)mActionBarTop.getLayoutParams();
  maxWidth=Math.max(maxWidth,mActionBarTop.getMeasuredWidth() + lp.leftMargin + lp.rightMargin);
  maxHeight=Math.max(maxHeight,mActionBarTop.getMeasuredHeight() + lp.topMargin + lp.bottomMargin);
  childState=combineMeasuredStates(childState,mActionBarTop.getMeasuredState());
  if (mActionBarBottom != null) {
    measureChildWithMargins(mActionBarBottom,widthMeasureSpec,0,heightMeasureSpec,0);
    lp=(LayoutParams)mActionBarBottom.getLayoutParams();
    maxWidth=Math.max(maxWidth,mActionBarBottom.getMeasuredWidth() + lp.leftMargin + lp.rightMargin);
    maxHeight=Math.max(maxHeight,mActionBarBottom.getMeasuredHeight() + lp.topMargin + lp.bottomMargin);
    childState=combineMeasuredStates(childState,mActionBarBottom.getMeasuredState());
  }
  final int vis=getWindowSystemUiVisibility();
  final boolean stable=(vis & SYSTEM_UI_FLAG_LAYOUT_STABLE) != 0;
  if (stable) {
    topInset=mActionBarHeight;
    if (mActionBar != null && mActionBar.hasNonEmbeddedTabs()) {
      View tabs=mContainerView.getTabContainer();
      if (tabs != null) {
        topInset+=mActionBarHeight;
      }
    }
  }
 else   if (mActionBarTop.getVisibility() == VISIBLE) {
    topInset=mActionBarTop.getMeasuredHeight();
  }
  if (mActionView.isSplitActionBar()) {
    if (mActionBarBottom != null) {
      if (stable) {
        bottomInset=mActionBarHeight;
      }
 else {
        bottomInset=mActionBarBottom.getMeasuredHeight();
      }
    }
  }
  mContentInsets.set(mBaseContentInsets);
  mInnerInsets.set(mBaseInnerInsets);
  if (!mOverlayMode && !stable) {
    mContentInsets.top+=topInset;
    mContentInsets.bottom+=bottomInset;
  }
 else {
    mInnerInsets.top+=topInset;
    mInnerInsets.bottom+=bottomInset;
  }
  applyInsets(mContent,mContentInsets,true,true,true,true);
  if (!mLastInnerInsets.equals(mInnerInsets)) {
    mLastInnerInsets.set(mInnerInsets);
    super.fitSystemWindows(mInnerInsets);
  }
  measureChildWithMargins(mContent,widthMeasureSpec,0,heightMeasureSpec,0);
  lp=(LayoutParams)mContent.getLayoutParams();
  maxWidth=Math.max(maxWidth,mContent.getMeasuredWidth() + lp.leftMargin + lp.rightMargin);
  maxHeight=Math.max(maxHeight,mContent.getMeasuredHeight() + lp.topMargin + lp.bottomMargin);
  childState=combineMeasuredStates(childState,mContent.getMeasuredState());
  maxWidth+=getPaddingLeft() + getPaddingRight();
  maxHeight+=getPaddingTop() + getPaddingBottom();
  maxHeight=Math.max(maxHeight,getSuggestedMinimumHeight());
  maxWidth=Math.max(maxWidth,getSuggestedMinimumWidth());
  setMeasuredDimension(resolveSizeAndState(maxWidth,widthMeasureSpec,childState),resolveSizeAndState(maxHeight,heightMeasureSpec,childState << MEASURED_HEIGHT_STATE_SHIFT));
}