Program: 46284
Project: 46284
Buggy source:
public void messageReceived(WonderlandClientSender sender,WonderlandClientID clientID,Message message){
  VoiceManager vm=AppContext.getManager(VoiceManager.class);
  if (message instanceof AvatarCellIDMessage) {
    AvatarCellIDMessage msg=(AvatarCellIDMessage)message;
    voiceChatHandler.addTransformChangeListener(msg.getCellID());
    return;
  }
  if (message instanceof CellStatusChangeMessage) {
    CellStatusChangeMessage msg=(CellStatusChangeMessage)message;
    if (msg.getActive()) {
      voiceChatHandler.addTransformChangeListener(msg.getCellID());
    }
 else {
      voiceChatHandler.removeTransformChangeListener(msg.getCellID());
    }
    return;
  }
  if (message instanceof GetVoiceBridgeMessage) {
    GetVoiceBridgeMessage msg=(GetVoiceBridgeMessage)message;
    String username=UserManager.getUserManager().getUser(clientID).getUsername();
    logger.fine("String_Node_Str" + username);
    try {
      String voiceBridge=vm.getVoiceBridge().toString();
      logger.info("String_Node_Str" + voiceBridge + "String_Node_Str");
      msg.setBridgeInfo(voiceBridge);
      msg.setUsername(username);
    }
 catch (    IOException e) {
      logger.warning("String_Node_Str" + e.getMessage());
      return;
    }
    sender.send(clientID,msg);
    return;
  }
  if (message instanceof GetUserListMessage) {
    GetUserListMessage msg=(GetUserListMessage)message;
    UserManager userManager=UserManager.getUserManager();
    Iterator<ManagedReference<UserMO>> it=userManager.getAllUsers().iterator();
    ArrayList<String> userList=new ArrayList();
    while (it.hasNext()) {
      UserMO userMO=it.next().get();
      userList.add(userMO.getIdentity().getUsername());
    }
    msg.setUserList(userList);
    sender.send(clientID,msg);
    return;
  }
  if (message instanceof PlaceCallMessage) {
    logger.fine("String_Node_Str" + clientID);
    PlaceCallMessage msg=(PlaceCallMessage)message;
    CallSetup setup=new CallSetup();
    CallParticipant cp=new CallParticipant();
    setup.cp=cp;
    setup.listener=this;
    String callID=msg.getSoftphoneCallID();
    logger.fine("String_Node_Str" + callID);
    if (callID == null) {
      logger.fine("String_Node_Str" + msg.getSipURL() + "String_Node_Str"+ callID);
      return;
    }
    cp.setCallId(callID);
    cp.setName(UserManager.getUserManager().getUser(clientID).getUsername());
    cp.setPhoneNumber(msg.getSipURL());
    cp.setConferenceId(vm.getConferenceId());
    cp.setVoiceDetection(true);
    cp.setDtmfDetection(true);
    cp.setVoiceDetectionWhileMuted(true);
    cp.setHandleSessionProgress(true);
    cp.setJoinConfirmationTimeout(0);
    cp.setCallAnsweredTreatment(null);
    senderCallIDMap.put(sender,callID);
    try {
      setupCall(callID,setup,msg.getX(),msg.getY(),msg.getZ(),msg.getDirection());
    }
 catch (    IOException e) {
      logger.warning("String_Node_Str" + cp + "String_Node_Str"+ e.getMessage());
      senderCallIDMap.remove(sender);
    }
    return;
  }
  if (message instanceof TransferCallMessage) {
    TransferCallMessage msg=(TransferCallMessage)message;
    String callID=msg.getSoftphoneCallID();
    if (callID == null) {
      logger.warning("String_Node_Str" + callID);
      return;
    }
    Call call=vm.getCall(callID);
    if (call == null) {
      logger.warning("String_Node_Str" + callID);
      return;
    }
    CallParticipant cp=call.getSetup().cp;
    cp.setPhoneNumber(msg.getPhoneNumber());
    cp.setJoinConfirmationTimeout(90);
    String callAnsweredTreatment=System.getProperty("String_Node_Str");
    if (callAnsweredTreatment == null || callAnsweredTreatment.length() == 0) {
      callAnsweredTreatment="String_Node_Str";
    }
    cp.setCallAnsweredTreatment(callAnsweredTreatment);
    try {
      call.transfer(cp);
    }
 catch (    IOException e) {
      logger.warning("String_Node_Str" + e.getMessage());
    }
    return;
  }
  if (message instanceof DisconnectCallMessage) {
    logger.fine("String_Node_Str");
    return;
  }
  if (message instanceof VoiceChatMessage) {
    voiceChatHandler.processVoiceChatMessage(sender,clientID,(VoiceChatMessage)message);
    return;
  }
  throw new UnsupportedOperationException("String_Node_Str");
}

Fixed version (ground truth):
public void messageReceived(WonderlandClientSender sender,WonderlandClientID clientID,Message message){
  VoiceManager vm=AppContext.getManager(VoiceManager.class);
  if (message instanceof AvatarCellIDMessage) {
    AvatarCellIDMessage msg=(AvatarCellIDMessage)message;
    voiceChatHandler.addTransformChangeListener(msg.getCellID());
    return;
  }
  if (message instanceof CellStatusChangeMessage) {
    CellStatusChangeMessage msg=(CellStatusChangeMessage)message;
    if (msg.getActive()) {
      voiceChatHandler.addTransformChangeListener(msg.getCellID());
    }
 else {
      voiceChatHandler.removeTransformChangeListener(msg.getCellID());
    }
    return;
  }
  if (message instanceof GetVoiceBridgeMessage) {
    GetVoiceBridgeMessage msg=(GetVoiceBridgeMessage)message;
    String username=UserManager.getUserManager().getUser(clientID).getUsername();
    logger.fine("String_Node_Str" + username);
    try {
      String voiceBridge=vm.getVoiceBridge().toString();
      logger.info("String_Node_Str" + voiceBridge + "String_Node_Str");
      msg.setBridgeInfo(voiceBridge);
      msg.setUsername(username);
    }
 catch (    IOException e) {
      logger.warning("String_Node_Str" + e.getMessage());
      return;
    }
    sender.send(clientID,msg);
    return;
  }
  if (message instanceof GetUserListMessage) {
    GetUserListMessage msg=(GetUserListMessage)message;
    UserManager userManager=UserManager.getUserManager();
    Iterator<ManagedReference<UserMO>> it=userManager.getAllUsers().iterator();
    ArrayList<String> userList=new ArrayList();
    while (it.hasNext()) {
      UserMO userMO=it.next().get();
      userList.add(userMO.getIdentity().getUsername());
    }
    msg.setUserList(userList);
    sender.send(clientID,msg);
    return;
  }
  if (message instanceof PlaceCallMessage) {
    logger.fine("String_Node_Str" + clientID);
    PlaceCallMessage msg=(PlaceCallMessage)message;
    CallSetup setup=new CallSetup();
    CallParticipant cp=new CallParticipant();
    setup.cp=cp;
    setup.listener=this;
    String callID=msg.getSoftphoneCallID();
    logger.fine("String_Node_Str" + callID);
    if (callID == null) {
      logger.fine("String_Node_Str" + msg.getSipURL() + "String_Node_Str"+ callID);
      return;
    }
    cp.setCallId(callID);
    cp.setName(UserManager.getUserManager().getUser(clientID).getUsername());
    cp.setPhoneNumber(msg.getSipURL());
    cp.setConferenceId(vm.getConferenceId());
    cp.setVoiceDetection(true);
    cp.setDtmfDetection(true);
    cp.setVoiceDetectionWhileMuted(true);
    cp.setHandleSessionProgress(true);
    cp.setJoinConfirmationTimeout(0);
    cp.setCallAnsweredTreatment(null);
    senderCallIDMap.put(sender,callID);
    try {
      setupCall(callID,setup,msg.getX(),msg.getY(),msg.getZ(),msg.getDirection());
    }
 catch (    IOException e) {
      logger.warning("String_Node_Str" + cp + "String_Node_Str"+ e.getMessage());
      senderCallIDMap.remove(sender);
    }
    return;
  }
  if (message instanceof MuteCallMessage) {
    MuteCallMessage msg=(MuteCallMessage)message;
    sender.send(new MuteCallMessage(msg.getCallID(),msg.isMuted()));
    return;
  }
  if (message instanceof TransferCallMessage) {
    TransferCallMessage msg=(TransferCallMessage)message;
    String callID=msg.getSoftphoneCallID();
    if (callID == null) {
      logger.warning("String_Node_Str" + callID);
      return;
    }
    Call call=vm.getCall(callID);
    if (call == null) {
      logger.warning("String_Node_Str" + callID);
      return;
    }
    CallParticipant cp=call.getSetup().cp;
    cp.setPhoneNumber(msg.getPhoneNumber());
    cp.setJoinConfirmationTimeout(90);
    String callAnsweredTreatment=System.getProperty("String_Node_Str");
    if (callAnsweredTreatment == null || callAnsweredTreatment.length() == 0) {
      callAnsweredTreatment="String_Node_Str";
    }
    cp.setCallAnsweredTreatment(callAnsweredTreatment);
    try {
      call.transfer(cp);
    }
 catch (    IOException e) {
      logger.warning("String_Node_Str" + e.getMessage());
    }
    return;
  }
  if (message instanceof DisconnectCallMessage) {
    logger.fine("String_Node_Str");
    return;
  }
  if (message instanceof VoiceChatMessage) {
    voiceChatHandler.processVoiceChatMessage(sender,clientID,(VoiceChatMessage)message);
    return;
  }
  throw new UnsupportedOperationException("String_Node_Str");
}