Program: 15177
Project: 15177
Buggy source:
@Override public Dialog onCreateDialog(Bundle savedInstanceState){
  AlertDialog.Builder b=new AlertDialog.Builder(getActivity());
  if (!isXMLRPC) {
    b.setTitle(R.string.error);
    b.setPositiveButton("String_Node_Str",this);
    b.setMessage(this.getArguments().getString("String_Node_Str"));
    return b.create();
  }
 else {
    String error=this.getArguments().getString("String_Node_Str");
    String message=this.getArguments().getString("String_Node_Str");
    if (error.contains("String_Node_Str")) {
      b.setIcon(android.R.drawable.ic_dialog_alert);
      b.setTitle(R.string.connection_error);
      b.setMessage(R.string.incorrect_credentials);
      b.setCancelable(true);
      b.setPositiveButton(R.string.yes,new DialogInterface.OnClickListener(){
        @Override public void onClick(        DialogInterface dialog,        int which){
          Intent settingsIntent=new Intent(getActivity(),Settings.class);
          getActivity().startActivity(settingsIntent);
        }
      }
);
      b.setNegativeButton(R.string.no,new DialogInterface.OnClickListener(){
        @Override public void onClick(        DialogInterface dialog,        int which){
        }
      }
);
      return b.create();
    }
 else {
      b.setIcon(android.R.drawable.ic_dialog_alert);
      b.setTitle(R.string.connection_error);
      b.setMessage((error.contains("String_Node_Str")) ? error : message);
      b.setPositiveButton(R.string.ok,new DialogInterface.OnClickListener(){
        @Override public void onClick(        DialogInterface dialog,        int which){
        }
      }
);
      b.setCancelable(true);
      return b.create();
    }
  }
}

Fixed version (ground truth):
@Override public Dialog onCreateDialog(Bundle savedInstanceState){
  AlertDialog.Builder b=new AlertDialog.Builder(getActivity());
  if (!isXMLRPC) {
    b.setTitle(R.string.error);
    b.setPositiveButton("String_Node_Str",this);
    b.setMessage(this.getArguments().getString("String_Node_Str"));
    return b.create();
  }
 else {
    String error=this.getArguments().getString("String_Node_Str");
    if (error == null)     error=getString(R.string.error_generic);
    String message=this.getArguments().getString("String_Node_Str");
    if (message == null)     message=getString(R.string.error_generic);
    if (error.contains("String_Node_Str")) {
      b.setIcon(android.R.drawable.ic_dialog_alert);
      b.setTitle(R.string.connection_error);
      b.setMessage(R.string.incorrect_credentials);
      b.setCancelable(true);
      b.setPositiveButton(R.string.yes,new DialogInterface.OnClickListener(){
        @Override public void onClick(        DialogInterface dialog,        int which){
          Intent settingsIntent=new Intent(getActivity(),Settings.class);
          getActivity().startActivity(settingsIntent);
        }
      }
);
      b.setNegativeButton(R.string.no,new DialogInterface.OnClickListener(){
        @Override public void onClick(        DialogInterface dialog,        int which){
        }
      }
);
      return b.create();
    }
 else {
      b.setIcon(android.R.drawable.ic_dialog_alert);
      b.setTitle(R.string.connection_error);
      b.setMessage((error.contains("String_Node_Str")) ? error : message);
      b.setPositiveButton(R.string.ok,new DialogInterface.OnClickListener(){
        @Override public void onClick(        DialogInterface dialog,        int which){
        }
      }
);
      b.setCancelable(true);
      return b.create();
    }
  }
}