Program: 32135
Project: 32135
Buggy source:
@Override public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){
  Log.d(LOG_TAG,"String_Node_Str");
  super.onCreateView(inflater,container,savedInstanceState);
  Bundle args=getArguments();
  mUiHandler=new Handler(Looper.getMainLooper());
  mMatrixId=args.getString(ARG_MATRIX_ID);
  mSession=getSession(mMatrixId);
  if (null == mSession) {
    throw new RuntimeException("String_Node_Str");
  }
  if (null == getMXMediasCache()) {
    throw new RuntimeException("String_Node_Str");
  }
  String roomId=args.getString(ARG_ROOM_ID);
  View v=inflater.inflate(args.getInt(ARG_LAYOUT_ID),container,false);
  mMessageListView=((ListView)v.findViewById(R.id.listView_messages));
  if (mAdapter == null) {
    mAdapter=createMessagesAdapter();
    if (null == getMXMediasCache()) {
      throw new RuntimeException("String_Node_Str");
    }
  }
 else   if (null != savedInstanceState) {
    mFirstVisibleRow=savedInstanceState.getInt("String_Node_Str",-1);
  }
  mAdapter.setIsPreviewMode(false);
  if (null == mEventTimeLine) {
    mEventId=args.getString(ARG_EVENT_ID);
    if (!TextUtils.isEmpty(mEventId)) {
      mEventTimeLine=new EventTimeline(mSession.getDataHandler(),roomId,mEventId);
      mRoom=mEventTimeLine.getRoom();
    }
 else     if (null != args.getString(ARG_PREVIEW_MODE_ID)) {
      mAdapter.setIsPreviewMode(true);
      mEventTimeLine=new EventTimeline(mSession.getDataHandler(),roomId);
      mRoom=mEventTimeLine.getRoom();
    }
 else {
      if (!TextUtils.isEmpty(roomId)) {
        mRoom=mSession.getDataHandler().getRoom(roomId);
        mEventTimeLine=mRoom.getLiveTimeLine();
      }
    }
  }
  if (null != mRoom) {
    mAdapter.setTypingUsers(mRoom.getTypingUsers());
  }
  mMessageListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
    @Override public void onItemClick(    AdapterView<?> parent,    View view,    int position,    long id){
      MatrixMessageListFragment.this.onRowClick(position);
    }
  }
);
  mMessageListView.setOnTouchListener(new View.OnTouchListener(){
    @Override public boolean onTouch(    View v,    MotionEvent event){
      onListTouch(event);
      return false;
    }
  }
);
  mAdapter.setMessagesAdapterEventsListener(this);
  mDisplayAllEvents=isDisplayAllEvents();
  return v;
}

Fixed version (ground truth):
@Override public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){
  Log.d(LOG_TAG,"String_Node_Str");
  super.onCreateView(inflater,container,savedInstanceState);
  Bundle args=getArguments();
  mUiHandler=new Handler(Looper.getMainLooper());
  mMatrixId=args.getString(ARG_MATRIX_ID);
  mSession=getSession(mMatrixId);
  if (null == mSession) {
    throw new RuntimeException("String_Node_Str");
  }
  if (null == getMXMediasCache()) {
    throw new RuntimeException("String_Node_Str");
  }
  String roomId=args.getString(ARG_ROOM_ID);
  View v=inflater.inflate(args.getInt(ARG_LAYOUT_ID),container,false);
  mMessageListView=((ListView)v.findViewById(R.id.listView_messages));
  if (mAdapter == null) {
    mAdapter=createMessagesAdapter();
    if (null == getMXMediasCache()) {
      throw new RuntimeException("String_Node_Str");
    }
  }
 else   if (null != savedInstanceState) {
    mFirstVisibleRow=savedInstanceState.getInt("String_Node_Str",-1);
  }
  mAdapter.setIsPreviewMode(false);
  if (null == mEventTimeLine) {
    mEventId=args.getString(ARG_EVENT_ID);
    if (!TextUtils.isEmpty(mEventId)) {
      mEventTimeLine=new EventTimeline(mSession.getDataHandler(),roomId,mEventId);
      mRoom=mEventTimeLine.getRoom();
    }
 else     if (null != args.getString(ARG_PREVIEW_MODE_ID)) {
      mAdapter.setIsPreviewMode(true);
      mEventTimeLine=new EventTimeline(mSession.getDataHandler(),roomId);
      mRoom=mEventTimeLine.getRoom();
    }
 else {
      if (!TextUtils.isEmpty(roomId)) {
        mRoom=mSession.getDataHandler().getRoom(roomId);
        mEventTimeLine=mRoom.getLiveTimeLine();
        if (null == mEventTimeLine.mDataHandler) {
          mEventTimeLine.setDataHandler(mSession.getDataHandler());
        }
      }
    }
  }
 else   if (null == mEventTimeLine.mDataHandler) {
    mEventTimeLine.setDataHandler(mSession.getDataHandler());
  }
  if (null != mRoom) {
    mAdapter.setTypingUsers(mRoom.getTypingUsers());
  }
  mMessageListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
    @Override public void onItemClick(    AdapterView<?> parent,    View view,    int position,    long id){
      MatrixMessageListFragment.this.onRowClick(position);
    }
  }
);
  mMessageListView.setOnTouchListener(new View.OnTouchListener(){
    @Override public boolean onTouch(    View v,    MotionEvent event){
      onListTouch(event);
      return false;
    }
  }
);
  mAdapter.setMessagesAdapterEventsListener(this);
  mDisplayAllEvents=isDisplayAllEvents();
  return v;
}