Program: 31993
Project: 31993
Buggy source:
@Override public void onTimelineInitialized(){
  if (getActivity() == null || getActivity().isFinishing()) {
    return;
  }
  mMessageListView.post(new Runnable(){
    @Override public void run(){
      mLockFwdPagination=false;
      mIsInitialSyncing=false;
      int eventPos=0;
      if (mAdapter.isUnreadViewMode() && mAdapter.getMessageRow(mEventId) == null) {
        final MessageRow closestRowAfter=mAdapter.getClosestRowFromTs(mEventId,mEventOriginServerTs);
        final int closestRowAfterPos=mAdapter.getPosition(closestRowAfter);
        MessageRow closestRowBefore=closestRowAfter;
        if (closestRowAfterPos > 0) {
          closestRowBefore=mAdapter.getItem(closestRowAfterPos - 1);
        }
        if (closestRowBefore != null) {
          mAdapter.updateReadMarker(closestRowBefore.getEvent().eventId,null);
        }
        mAdapter.notifyDataSetChanged();
        mMessageListView.setAdapter(mAdapter);
        if (closestRowBefore != null) {
          scrollToRow(closestRowBefore,true);
        }
      }
 else {
        for (; eventPos < mAdapter.getCount(); eventPos++) {
          if (TextUtils.equals(mAdapter.getItem(eventPos).getEvent().eventId,mEventId)) {
            break;
          }
        }
        mAdapter.notifyDataSetChanged();
        mMessageListView.setAdapter(mAdapter);
        if (mAdapter.isUnreadViewMode()) {
          scrollToRow(mAdapter.getMessageRow(mEventId),true);
        }
 else {
          View parentView=(View)mMessageListView.getParent();
          mMessageListView.setSelectionFromTop(eventPos,parentView.getHeight() / 2);
        }
      }
    }
  }
);
}

Fixed version (ground truth):
@Override public void onTimelineInitialized(){
  if (getActivity() == null || getActivity().isFinishing()) {
    return;
  }
  mMessageListView.post(new Runnable(){
    @Override public void run(){
      if (null == getActivity()) {
        Log.e(LOG_TAG,"String_Node_Str");
        return;
      }
      mLockFwdPagination=false;
      mIsInitialSyncing=false;
      int eventPos=0;
      if (mAdapter.isUnreadViewMode() && mAdapter.getMessageRow(mEventId) == null) {
        final MessageRow closestRowAfter=mAdapter.getClosestRowFromTs(mEventId,mEventOriginServerTs);
        final int closestRowAfterPos=mAdapter.getPosition(closestRowAfter);
        MessageRow closestRowBefore=closestRowAfter;
        if (closestRowAfterPos > 0) {
          closestRowBefore=mAdapter.getItem(closestRowAfterPos - 1);
        }
        if (closestRowBefore != null) {
          mAdapter.updateReadMarker(closestRowBefore.getEvent().eventId,null);
        }
        mAdapter.notifyDataSetChanged();
        mMessageListView.setAdapter(mAdapter);
        if (closestRowBefore != null) {
          scrollToRow(closestRowBefore,true);
        }
      }
 else {
        for (; eventPos < mAdapter.getCount(); eventPos++) {
          if (TextUtils.equals(mAdapter.getItem(eventPos).getEvent().eventId,mEventId)) {
            break;
          }
        }
        mAdapter.notifyDataSetChanged();
        mMessageListView.setAdapter(mAdapter);
        if (mAdapter.isUnreadViewMode()) {
          scrollToRow(mAdapter.getMessageRow(mEventId),true);
        }
 else {
          View parentView=(View)mMessageListView.getParent();
          mMessageListView.setSelectionFromTop(eventPos,parentView.getHeight() / 2);
        }
      }
    }
  }
);
}