Program: 103080
Project: 103080
Buggy source:
/** 
 * Handles <tt>ActionEvent</tt>s triggered by a button click.
 * @param e the action event.
 */
public void actionPerformed(ActionEvent e){
  String[] joinOptions;
  String subject=null;
  JButton sourceButton=(JButton)e.getSource();
  if (sourceButton.equals(addButton)) {
    String chatRoomName=editor.getText();
    if (StringUtils.isNullOrEmpty(chatRoomName))     return;
    ChatRoomWrapper chatRoomWrapper=GuiActivator.getUIService().getConferenceChatManager().createChatRoom(chatRoomName.trim(),getSelectedProvider().getProtocolProvider(),new ArrayList<String>(),"String_Node_Str",false,false,true);
    chatRoomWrapper.getJoinOptions(true);
  }
 else   if (sourceButton.equals(removeButton)) {
    chatRoomsTableUI.removeSelectedRoom();
  }
 else   if (sourceButton.equals(okButton)) {
    ChatRoomWrapper selectedRoom=chatRoomsTableUI.getSelectedRoom();
    if (selectedRoom == null) {
      if (editor.getText() != null && editor.getText().trim().length() > 0) {
        ChatRoomWrapper chatRoomWrapper=GuiActivator.getUIService().getConferenceChatManager().createChatRoom(editor.getText().trim(),getSelectedProvider().getProtocolProvider(),new ArrayList<String>(),"String_Node_Str",false,false,false);
        joinOptions=chatRoomWrapper.getJoinOptions();
        String nickName=joinOptions[0];
        subject=joinOptions[1];
        if (nickName == null)         return;
        GuiActivator.getUIService().getConferenceChatManager().joinChatRoom(chatRoomWrapper,nickName,null,subject);
        ChatWindowManager chatWindowManager=GuiActivator.getUIService().getChatWindowManager();
        ChatPanel chatPanel=chatWindowManager.getMultiChat(chatRoomWrapper,true);
        chatWindowManager.openChat(chatPanel,true);
      }
    }
 else {
      if (selectedRoom.getChatRoom() != null) {
        if (!selectedRoom.getChatRoom().isJoined()) {
          String savedNick=ConfigurationUtils.getChatRoomProperty(selectedRoom.getParentProvider().getProtocolProvider(),selectedRoom.getChatRoomID(),"String_Node_Str");
          if (savedNick == null) {
            joinOptions=selectedRoom.getJoinOptions();
            savedNick=joinOptions[0];
            subject=joinOptions[1];
            if (savedNick == null)             return;
          }
          GuiActivator.getUIService().getConferenceChatManager().joinChatRoom(selectedRoom,savedNick,null,subject);
        }
 else         chatRoomsTableUI.openChatForSelection();
      }
 else {
        ChatRoomWrapper chatRoomWrapper=GuiActivator.getUIService().getConferenceChatManager().createChatRoom(selectedRoom.getChatRoomName(),getSelectedProvider().getProtocolProvider(),new ArrayList<String>(),"String_Node_Str",false,false,true);
        String savedNick=ConfigurationUtils.getChatRoomProperty(chatRoomWrapper.getParentProvider().getProtocolProvider(),chatRoomWrapper.getChatRoomID(),"String_Node_Str");
        if (savedNick == null) {
          joinOptions=selectedRoom.getJoinOptions();
          savedNick=joinOptions[0];
          subject=joinOptions[1];
          if (savedNick == null)           return;
        }
        GuiActivator.getUIService().getConferenceChatManager().joinChatRoom(chatRoomWrapper,savedNick,null,subject);
      }
    }
    dispose();
  }
 else   if (sourceButton.equals(cancelButton)) {
    dispose();
  }
}

Fixed version (ground truth):
/** 
 * Handles <tt>ActionEvent</tt>s triggered by a button click.
 * @param e the action event.
 */
public void actionPerformed(ActionEvent e){
  String[] joinOptions;
  String subject=null;
  JButton sourceButton=(JButton)e.getSource();
  if (sourceButton.equals(addButton)) {
    String chatRoomName=editor.getText();
    if (StringUtils.isNullOrEmpty(chatRoomName))     return;
    ChatRoomWrapper chatRoomWrapper=GuiActivator.getUIService().getConferenceChatManager().createChatRoom(chatRoomName.trim(),getSelectedProvider().getProtocolProvider(),new ArrayList<String>(),"String_Node_Str",false,true,true);
    chatRoomWrapper.getJoinOptions(true);
  }
 else   if (sourceButton.equals(removeButton)) {
    chatRoomsTableUI.removeSelectedRoom();
  }
 else   if (sourceButton.equals(okButton)) {
    ChatRoomWrapper selectedRoom=chatRoomsTableUI.getSelectedRoom();
    if (selectedRoom == null) {
      if (editor.getText() != null && editor.getText().trim().length() > 0) {
        ChatRoomWrapper chatRoomWrapper=GuiActivator.getUIService().getConferenceChatManager().createChatRoom(editor.getText().trim(),getSelectedProvider().getProtocolProvider(),new ArrayList<String>(),"String_Node_Str",false,false,false);
        joinOptions=chatRoomWrapper.getJoinOptions();
        String nickName=joinOptions[0];
        subject=joinOptions[1];
        if (nickName == null)         return;
        GuiActivator.getUIService().getConferenceChatManager().joinChatRoom(chatRoomWrapper,nickName,null,subject);
        ChatWindowManager chatWindowManager=GuiActivator.getUIService().getChatWindowManager();
        ChatPanel chatPanel=chatWindowManager.getMultiChat(chatRoomWrapper,true);
        chatWindowManager.openChat(chatPanel,true);
      }
    }
 else {
      if (selectedRoom.getChatRoom() != null) {
        if (!selectedRoom.getChatRoom().isJoined()) {
          String savedNick=ConfigurationUtils.getChatRoomProperty(selectedRoom.getParentProvider().getProtocolProvider(),selectedRoom.getChatRoomID(),"String_Node_Str");
          if (savedNick == null) {
            joinOptions=selectedRoom.getJoinOptions();
            savedNick=joinOptions[0];
            subject=joinOptions[1];
            if (savedNick == null)             return;
          }
          GuiActivator.getUIService().getConferenceChatManager().joinChatRoom(selectedRoom,savedNick,null,subject);
        }
 else         chatRoomsTableUI.openChatForSelection();
      }
 else {
        ChatRoomWrapper chatRoomWrapper=GuiActivator.getUIService().getConferenceChatManager().createChatRoom(selectedRoom.getChatRoomName(),getSelectedProvider().getProtocolProvider(),new ArrayList<String>(),"String_Node_Str",false,false,true);
        String savedNick=ConfigurationUtils.getChatRoomProperty(chatRoomWrapper.getParentProvider().getProtocolProvider(),chatRoomWrapper.getChatRoomID(),"String_Node_Str");
        if (savedNick == null) {
          joinOptions=selectedRoom.getJoinOptions();
          savedNick=joinOptions[0];
          subject=joinOptions[1];
          if (savedNick == null)           return;
        }
        GuiActivator.getUIService().getConferenceChatManager().joinChatRoom(chatRoomWrapper,savedNick,null,subject);
      }
    }
    dispose();
  }
 else   if (sourceButton.equals(cancelButton)) {
    dispose();
  }
}