Program: 34564
Project: 34564
Buggy source:
@Override public boolean checkAliasAccess(Subject authenticatedSubject,String destination,String aliasDestination,int destinationType,String operationType,boolean logWarning) throws MessagingAuthorizationException {
  SibTr.entry(tc,CLASS_NAME + "String_Node_Str",new Object[]{authenticatedSubject,aliasDestination,operationType});
  String busName=null;
  String messagingEngine=null;
  String[] roles=null;
  if (auditManager != null) {
    if (auditManager.getJMSBusName() != null)     busName=auditManager.getJMSBusName();
    if (auditManager.getJMSMessagingEngine() != null)     messagingEngine=auditManager.getJMSMessagingEngine();
  }
  roles=new String[]{MessagingSecurityConstants.OPERATION_TYPE_RECEIVE};
  if (operationType.equalsIgnoreCase(MessagingSecurityConstants.OPERATION_TYPE_BROWSE)) {
    if (checkAliasAccess(authenticatedSubject,destination,aliasDestination,destinationType,MessagingSecurityConstants.OPERATION_TYPE_RECEIVE,false)) {
      return true;
    }
  }
  String destinationName=destination + "String_Node_Str" + aliasDestination;
  checkIfUserIsAuthenticated(authenticatedSubject);
  String userName=null;
  String user=authenticatedSubject.getPrincipals().iterator().next().getName();
  try {
    userName=MessagingSecurityUtility.getUniqueUserName(authenticatedSubject);
  }
 catch (  MessagingSecurityException e) {
    if (auditManager != null && auditManager.getJMSConversationMetaData() != null) {
      ConversationMetaData cmd=(ConversationMetaData)auditManager.getJMSConversationMetaData();
      Audit.audit(Audit.EventID.SECURITY_JMS_AUTHZ_01,user,cmd.getRemoteAddress().getHostAddress(),new Integer(cmd.getRemotePort()).toString(),cmd.getChainName(),busName,messagingEngine,destinationName,operationType,roles,"String_Node_Str",Integer.valueOf("String_Node_Str"));
    }
 else {
      Audit.audit(Audit.EventID.SECURITY_JMS_AUTHZ_01,user,null,null,null,busName,messagingEngine,destinationName,operationType,roles,"String_Node_Str",Integer.valueOf("String_Node_Str"));
    }
    throw new MessagingAuthorizationException(Tr.formatMessage(tc,"String_Node_Str",userName,operationType,aliasDestination),e);
  }
  Permission permission=null;
  if (destinationType == MessagingSecurityConstants.DESTINATION_TYPE_QUEUE) {
    Map<String,QueuePermission> destinationPermission=messagingSecurityService.getQueuePermissions();
    permission=destinationPermission.get(destination);
  }
 else   if (destinationType == MessagingSecurityConstants.DESTINATION_TYPE_TOPICSPACE) {
    Map<String,TopicPermission> destinationPermission=messagingSecurityService.getTopicPermissions();
    permission=destinationPermission.get(destination);
  }
  boolean result=checkPermission(permission,operationType,userName);
  if (!result && logWarning) {
    if (auditManager != null && auditManager.getJMSConversationMetaData() != null) {
      ConversationMetaData cmd=(ConversationMetaData)auditManager.getJMSConversationMetaData();
      Audit.audit(Audit.EventID.SECURITY_JMS_AUTHZ_01,user,cmd.getRemoteAddress().getHostAddress(),new Integer(cmd.getRemotePort()).toString(),cmd.getChainName(),busName,messagingEngine,destinationName,operationType,roles,"String_Node_Str",Integer.valueOf("String_Node_Str"));
    }
 else {
      Audit.audit(Audit.EventID.SECURITY_JMS_AUTHZ_01,user,null,null,null,busName,messagingEngine,destinationName,operationType,roles,"String_Node_Str",Integer.valueOf("String_Node_Str"));
    }
    SibTr.debug(tc,"String_Node_Str",new Object[]{userName,operationType,aliasDestination});
    throw new MessagingAuthorizationException(Tr.formatMessage(tc,"String_Node_Str",userName,operationType,aliasDestination));
  }
  if (auditManager != null && auditManager.getJMSConversationMetaData() != null) {
    ConversationMetaData cmd=(ConversationMetaData)auditManager.getJMSConversationMetaData();
    Audit.audit(Audit.EventID.SECURITY_JMS_AUTHZ_01,user,cmd.getRemoteAddress().getHostAddress(),new Integer(cmd.getRemotePort()).toString(),cmd.getChainName(),busName,messagingEngine,destinationName,operationType,roles,"String_Node_Str",Integer.valueOf("String_Node_Str"));
  }
 else {
    Audit.audit(Audit.EventID.SECURITY_JMS_AUTHZ_01,user,null,null,null,busName,messagingEngine,destinationName,operationType,roles,"String_Node_Str",Integer.valueOf("String_Node_Str"));
  }
  SibTr.exit(tc,CLASS_NAME + "String_Node_Str",result);
  return result;
}

Fixed version (ground truth):
@Override public boolean checkAliasAccess(Subject authenticatedSubject,String destination,String aliasDestination,int destinationType,String operationType,boolean logWarning) throws MessagingAuthorizationException {
  SibTr.entry(tc,CLASS_NAME + "String_Node_Str",new Object[]{authenticatedSubject,aliasDestination,operationType});
  String busName=null;
  String messagingEngine=null;
  String[] roles=null;
  if (auditManager != null) {
    if (auditManager.getJMSBusName() != null)     busName=auditManager.getJMSBusName();
    if (auditManager.getJMSMessagingEngine() != null)     messagingEngine=auditManager.getJMSMessagingEngine();
  }
  roles=new String[]{MessagingSecurityConstants.OPERATION_TYPE_RECEIVE};
  if (operationType.equalsIgnoreCase(MessagingSecurityConstants.OPERATION_TYPE_BROWSE)) {
    if (checkAliasAccess(authenticatedSubject,destination,aliasDestination,destinationType,MessagingSecurityConstants.OPERATION_TYPE_RECEIVE,false)) {
      return true;
    }
  }
  String destinationName=destination + "String_Node_Str" + aliasDestination;
  checkIfUserIsAuthenticated(authenticatedSubject);
  String userName=null;
  String user=authenticatedSubject.getPrincipals().iterator().next().getName();
  try {
    userName=MessagingSecurityUtility.getUniqueUserName(authenticatedSubject);
  }
 catch (  MessagingSecurityException e) {
    if (auditManager != null && auditManager.getJMSConversationMetaData() != null) {
      ConversationMetaData cmd=(ConversationMetaData)auditManager.getJMSConversationMetaData();
      Audit.audit(Audit.EventID.SECURITY_JMS_AUTHZ_01,user,cmd.getRemoteAddress().getHostAddress(),new Integer(cmd.getRemotePort()).toString(),cmd.getChainName(),busName,messagingEngine,destinationName,operationType,roles,"String_Node_Str",Integer.valueOf("String_Node_Str"));
    }
 else {
      Audit.audit(Audit.EventID.SECURITY_JMS_AUTHZ_01,user,null,null,null,busName,messagingEngine,destinationName,operationType,roles,"String_Node_Str",Integer.valueOf("String_Node_Str"));
    }
    throw new MessagingAuthorizationException(Tr.formatMessage(tc,"String_Node_Str",userName,operationType,aliasDestination),e);
  }
  Permission permission=null;
  if (destinationType == MessagingSecurityConstants.DESTINATION_TYPE_QUEUE) {
    Map<String,QueuePermission> destinationPermission=messagingSecurityService.getQueuePermissions();
    permission=destinationPermission.get(destination);
  }
 else   if (destinationType == MessagingSecurityConstants.DESTINATION_TYPE_TOPICSPACE) {
    Map<String,TopicPermission> destinationPermission=messagingSecurityService.getTopicPermissions();
    permission=destinationPermission.get(destination);
  }
  boolean result=checkPermission(permission,operationType,userName);
  if (!result) {
    if (auditManager != null && auditManager.getJMSConversationMetaData() != null) {
      ConversationMetaData cmd=(ConversationMetaData)auditManager.getJMSConversationMetaData();
      Audit.audit(Audit.EventID.SECURITY_JMS_AUTHZ_01,user,cmd.getRemoteAddress().getHostAddress(),new Integer(cmd.getRemotePort()).toString(),cmd.getChainName(),busName,messagingEngine,destinationName,operationType,roles,"String_Node_Str",Integer.valueOf("String_Node_Str"));
    }
 else {
      Audit.audit(Audit.EventID.SECURITY_JMS_AUTHZ_01,user,null,null,null,busName,messagingEngine,destinationName,operationType,roles,"String_Node_Str",Integer.valueOf("String_Node_Str"));
    }
    if (logWarning) {
      SibTr.debug(tc,"String_Node_Str",new Object[]{userName,operationType,aliasDestination});
      throw new MessagingAuthorizationException(Tr.formatMessage(tc,"String_Node_Str",userName,operationType,aliasDestination));
    }
  }
 else {
    if (auditManager != null && auditManager.getJMSConversationMetaData() != null) {
      ConversationMetaData cmd=(ConversationMetaData)auditManager.getJMSConversationMetaData();
      Audit.audit(Audit.EventID.SECURITY_JMS_AUTHZ_01,user,cmd.getRemoteAddress().getHostAddress(),new Integer(cmd.getRemotePort()).toString(),cmd.getChainName(),busName,messagingEngine,destinationName,operationType,roles,"String_Node_Str",Integer.valueOf("String_Node_Str"));
    }
 else {
      Audit.audit(Audit.EventID.SECURITY_JMS_AUTHZ_01,user,null,null,null,busName,messagingEngine,destinationName,operationType,roles,"String_Node_Str",Integer.valueOf("String_Node_Str"));
    }
  }
  SibTr.exit(tc,CLASS_NAME + "String_Node_Str",result);
  return result;
}