Program: 104041
Project: 104041
Buggy source:
/** 
 * Loads all previously saved event notifications.
 */
private void loadNotifications(){
  List<String> eventTypes=configService.getPropertyNamesByPrefix(NOTIFICATIONS_PREFIX,true);
  for (  String eventTypeRootPropName : eventTypes) {
    boolean isEventActive=isEnabled(eventTypeRootPropName + "String_Node_Str");
    String eventType=configService.getString(eventTypeRootPropName);
    List<String> actions=configService.getPropertyNamesByPrefix(eventTypeRootPropName + "String_Node_Str",true);
    for (    String actionPropName : actions) {
      String actionType=configService.getString(actionPropName);
      NotificationActionHandler handler=null;
      if (actionType.equals(ACTION_SOUND)) {
        String soundFileDescriptor=configService.getString(actionPropName + "String_Node_Str");
        String loopInterval=configService.getString(actionPropName + "String_Node_Str");
        handler=new SoundNotificationHandlerImpl(soundFileDescriptor,Integer.parseInt(loopInterval));
        handler.setEnabled(isEnabled(actionPropName + "String_Node_Str"));
      }
 else       if (actionType.equals(ACTION_POPUP_MESSAGE)) {
        String defaultMessage=configService.getString(actionPropName + "String_Node_Str");
        handler=new PopupMessageNotificationHandlerImpl(defaultMessage);
        handler.setEnabled(isEnabled(actionPropName + "String_Node_Str"));
      }
 else       if (actionType.equals(ACTION_LOG_MESSAGE)) {
        String logType=configService.getString(actionPropName + "String_Node_Str");
        handler=new LogMessageNotificationHandlerImpl(logType);
        handler.setEnabled(isEnabled(actionPropName + "String_Node_Str"));
      }
 else       if (actionType.equals(ACTION_COMMAND)) {
        String commandDescriptor=configService.getString(actionPropName + "String_Node_Str");
        handler=new CommandNotificationHandlerImpl(commandDescriptor);
        handler.setEnabled(isEnabled(actionPropName + "String_Node_Str"));
      }
      EventNotification notification=(EventNotification)notificationsTable.get(eventType);
      if (notification == null) {
        notification=new EventNotification(eventType);
        notificationsTable.put(eventType,notification);
      }
      notification.setActive(isEventActive);
      notification.addAction(actionType,handler);
    }
  }
}

Fixed version (ground truth):
/** 
 * Loads all previously saved event notifications.
 */
private void loadNotifications(){
  List<String> eventTypes=configService.getPropertyNamesByPrefix(NOTIFICATIONS_PREFIX,true);
  for (  String eventTypeRootPropName : eventTypes) {
    boolean isEventActive=isEnabled(eventTypeRootPropName + "String_Node_Str");
    String eventType=configService.getString(eventTypeRootPropName);
    List<String> actions=configService.getPropertyNamesByPrefix(eventTypeRootPropName + "String_Node_Str",true);
    for (    String actionPropName : actions) {
      String actionType=configService.getString(actionPropName);
      NotificationActionHandler handler=null;
      if (actionType.equals(ACTION_SOUND)) {
        String soundFileDescriptor=configService.getString(actionPropName + "String_Node_Str");
        String loopInterval=configService.getString(actionPropName + "String_Node_Str");
        handler=new SoundNotificationHandlerImpl(soundFileDescriptor,Integer.parseInt(loopInterval));
        handler.setEnabled(isEnabled(actionPropName + "String_Node_Str"));
      }
 else       if (actionType.equals(ACTION_POPUP_MESSAGE)) {
        String defaultMessage=configService.getString(actionPropName + "String_Node_Str");
        handler=new PopupMessageNotificationHandlerImpl(defaultMessage);
        handler.setEnabled(isEnabled(actionPropName + "String_Node_Str"));
      }
 else       if (actionType.equals(ACTION_LOG_MESSAGE)) {
        String logType=configService.getString(actionPropName + "String_Node_Str");
        handler=new LogMessageNotificationHandlerImpl(logType);
        handler.setEnabled(isEnabled(actionPropName + "String_Node_Str"));
      }
 else       if (actionType.equals(ACTION_COMMAND)) {
        String commandDescriptor=configService.getString(actionPropName + "String_Node_Str");
        handler=new CommandNotificationHandlerImpl(commandDescriptor);
        handler.setEnabled(isEnabled(actionPropName + "String_Node_Str"));
      }
      EventNotification notification=notificationsTable.get(eventType);
      if (notification == null) {
        notification=new EventNotification(eventType);
        notificationsTable.put(eventType,notification);
      }
      notification.setActive(isEventActive);
      notification.addAction(actionType,handler);
    }
  }
}