Program: 95240
Project: 95240
Buggy source:
public void run(){
  try {
    IWorkbenchWindow ww=PlatformUI.getWorkbench().getActiveWorkbenchWindow();
    AuthorizeRequest authRequest=new AuthorizeRequest(ww.getShell(),fromID.getName(),localUser.getName());
    authRequest.open();
    int res=authRequest.getButtonPressed();
    if (res == AuthorizeRequest.AUTHORIZE_AND_ADD) {
      if (presenceSender != null) {
        presenceSender.sendPresenceUpdate(localUser,fromID,new Presence(IPresence.Type.SUBSCRIBED));
        if (rosterView != null) {
          String[] groupNames=rosterView.getGroupNames();
        }
        presenceSender.sendPresenceUpdate(localUser,fromID,new Presence(IPresence.Type.SUBSCRIBE));
      }
    }
 else     if (res == AuthorizeRequest.AUTHORIZE_ID) {
      if (presenceSender != null) {
        presenceSender.sendPresenceUpdate(localUser,fromID,new Presence(IPresence.Type.SUBSCRIBED));
      }
    }
 else     if (res == AuthorizeRequest.REFUSE_ID) {
      System.out.println("String_Node_Str");
    }
 else {
      System.out.println("String_Node_Str");
    }
  }
 catch (  Exception e) {
    IStatus status=new Status(IStatus.ERROR,ClientPlugin.PLUGIN_ID,IStatus.OK,"String_Node_Str",e);
    ClientPlugin.getDefault().getLog().log(status);
  }
}

Fixed version (ground truth):
public void run(){
  try {
    IWorkbenchWindow ww=PlatformUI.getWorkbench().getActiveWorkbenchWindow();
    ReceiveAuthorizeRequestDialog authRequest=new ReceiveAuthorizeRequestDialog(ww.getShell(),fromID.getName(),localUser.getName());
    authRequest.setBlockOnOpen(true);
    authRequest.open();
    int res=authRequest.getButtonPressed();
    if (res == ReceiveAuthorizeRequestDialog.AUTHORIZE_AND_ADD) {
      if (presenceSender != null) {
        presenceSender.sendPresenceUpdate(localUser,fromID,new Presence(IPresence.Type.SUBSCRIBED));
        if (rosterView != null) {
          String[] groupNames=rosterView.getGroupNames();
          List g=Arrays.asList(groupNames);
          String selectedGroup=rosterView.getSelectedGroupName();
          int selected=(selectedGroup == null) ? -1 : g.indexOf(selectedGroup);
          AddBuddyDialog sg=new AddBuddyDialog(ww.getShell(),fromID.getName(),groupNames,selected);
          sg.open();
          if (sg.getReturnCode() == Window.OK) {
            String group=sg.getGroup();
            String user=sg.getUser();
            String nickname=sg.getNickname();
            sg.close();
            if (!g.contains(group)) {
              rosterView.addGroup(group);
            }
            presenceSender.sendRosterAdd(localUser,user,nickname,new String[]{group});
          }
        }
      }
    }
 else     if (res == ReceiveAuthorizeRequestDialog.AUTHORIZE_ID) {
      if (presenceSender != null) {
        presenceSender.sendPresenceUpdate(localUser,fromID,new Presence(IPresence.Type.SUBSCRIBED));
      }
    }
 else     if (res == ReceiveAuthorizeRequestDialog.REFUSE_ID) {
      System.out.println("String_Node_Str");
    }
 else {
      System.out.println("String_Node_Str");
    }
  }
 catch (  Exception e) {
    IStatus status=new Status(IStatus.ERROR,ClientPlugin.PLUGIN_ID,IStatus.OK,"String_Node_Str",e);
    ClientPlugin.getDefault().getLog().log(status);
  }
}