Program: 106495
Project: 106495
Buggy source:
@Override @DB public boolean updateLDAP(LDAPConfigCmd cmd){
  try {
    String hostname=cmd.getHostname();
    Integer port=cmd.getPort();
    String queryFilter=cmd.getQueryFilter();
    String searchBase=cmd.getSearchBase();
    Boolean useSSL=cmd.getUseSSL();
    String bindDN=cmd.getBindDN();
    String bindPasswd=cmd.getBindPassword();
    String trustStore=cmd.getTrustStore();
    String trustStorePassword=cmd.getTrustStorePassword();
    if (bindDN != null && bindPasswd == null) {
      throw new InvalidParameterValueException("String_Node_Str");
    }
    Hashtable<String,String> env=new Hashtable<String,String>(11);
    env.put(Context.INITIAL_CONTEXT_FACTORY,"String_Node_Str");
    String protocol="String_Node_Str";
    if (new Boolean(useSSL)) {
      env.put(Context.SECURITY_PROTOCOL,"String_Node_Str");
      protocol="String_Node_Str";
      if (trustStore == null || trustStorePassword == null) {
        throw new InvalidParameterValueException("String_Node_Str");
      }
      System.setProperty("String_Node_Str",trustStore);
      System.setProperty("String_Node_Str",trustStorePassword);
    }
    env.put(Context.PROVIDER_URL,protocol + hostname + "String_Node_Str"+ port);
    if (bindDN != null && bindPasswd != null) {
      env.put(Context.SECURITY_AUTHENTICATION,"String_Node_Str");
      env.put(Context.SECURITY_PRINCIPAL,bindDN);
      env.put(Context.SECURITY_CREDENTIALS,bindPasswd);
    }
    DirContext ctx=new InitialDirContext(env);
    ctx.close();
    ConfigurationVO cvo=_configDao.findByName(LDAPParams.hostname.toString());
    if (cvo == null) {
      cvo=new ConfigurationVO("String_Node_Str","String_Node_Str","String_Node_Str",LDAPParams.hostname.toString(),null,"String_Node_Str");
    }
    cvo.setValue(hostname);
    _configDao.persist(cvo);
    cvo=_configDao.findByName(LDAPParams.port.toString());
    if (cvo == null) {
      cvo=new ConfigurationVO("String_Node_Str","String_Node_Str","String_Node_Str",LDAPParams.port.toString(),null,"String_Node_Str");
    }
    cvo.setValue(port.toString());
    _configDao.persist(cvo);
    cvo=_configDao.findByName(LDAPParams.queryfilter.toString());
    if (cvo == null) {
      cvo=new ConfigurationVO("String_Node_Str","String_Node_Str","String_Node_Str",LDAPParams.queryfilter.toString(),null,"String_Node_Str");
    }
    cvo.setValue(queryFilter);
    _configDao.persist(cvo);
    cvo=_configDao.findByName(LDAPParams.searchbase.toString());
    if (cvo == null) {
      cvo=new ConfigurationVO("String_Node_Str","String_Node_Str","String_Node_Str",LDAPParams.searchbase.toString(),null,"String_Node_Str");
    }
    cvo.setValue(searchBase);
    _configDao.persist(cvo);
    cvo=_configDao.findByName(LDAPParams.usessl.toString());
    if (cvo == null) {
      cvo=new ConfigurationVO("String_Node_Str","String_Node_Str","String_Node_Str",LDAPParams.usessl.toString(),null,"String_Node_Str");
    }
    cvo.setValue(useSSL.toString());
    _configDao.persist(cvo);
    cvo=_configDao.findByName(LDAPParams.dn.toString());
    if (cvo == null) {
      cvo=new ConfigurationVO("String_Node_Str","String_Node_Str","String_Node_Str",LDAPParams.dn.toString(),null,"String_Node_Str");
    }
    cvo.setValue(bindDN);
    _configDao.persist(cvo);
    cvo=_configDao.findByName(LDAPParams.passwd.toString());
    if (cvo == null) {
      cvo=new ConfigurationVO("String_Node_Str","String_Node_Str","String_Node_Str",LDAPParams.passwd.toString(),null,"String_Node_Str");
    }
    cvo.setValue(DBEncryptionUtil.encrypt(bindPasswd));
    _configDao.persist(cvo);
    cvo=_configDao.findByName(LDAPParams.truststore.toString());
    if (cvo == null) {
      cvo=new ConfigurationVO("String_Node_Str","String_Node_Str","String_Node_Str",LDAPParams.truststore.toString(),null,"String_Node_Str");
    }
    cvo.setValue(trustStore);
    _configDao.persist(cvo);
    cvo=_configDao.findByName(LDAPParams.truststorepass.toString());
    if (cvo == null) {
      cvo=new ConfigurationVO("String_Node_Str","String_Node_Str","String_Node_Str",LDAPParams.truststorepass.toString(),null,"String_Node_Str");
    }
    cvo.setValue(DBEncryptionUtil.encrypt(trustStorePassword));
    _configDao.persist(cvo);
    s_logger.debug("String_Node_Str" + hostname);
  }
 catch (  NamingException ne) {
    ne.printStackTrace();
    throw new InvalidParameterValueException("String_Node_Str" + ne.getMessage() + (ne.getCause() != null ? ("String_Node_Str" + ne.getCause().getMessage()) : "String_Node_Str"));
  }
  return true;
}

Fixed version (ground truth):
@Override @DB public boolean updateLDAP(LDAPConfigCmd cmd){
  try {
    String hostname=cmd.getHostname();
    Integer port=cmd.getPort();
    String queryFilter=cmd.getQueryFilter();
    String searchBase=cmd.getSearchBase();
    Boolean useSSL=cmd.getUseSSL();
    String bindDN=cmd.getBindDN();
    String bindPasswd=cmd.getBindPassword();
    String trustStore=cmd.getTrustStore();
    String trustStorePassword=cmd.getTrustStorePassword();
    if (bindDN != null && bindPasswd == null) {
      throw new InvalidParameterValueException("String_Node_Str");
    }
    Hashtable<String,String> env=new Hashtable<String,String>(11);
    env.put(Context.INITIAL_CONTEXT_FACTORY,"String_Node_Str");
    String protocol="String_Node_Str";
    if (new Boolean(useSSL)) {
      env.put(Context.SECURITY_PROTOCOL,"String_Node_Str");
      protocol="String_Node_Str";
      if (trustStore == null || trustStorePassword == null) {
        throw new InvalidParameterValueException("String_Node_Str");
      }
      System.setProperty("String_Node_Str",trustStore);
      System.setProperty("String_Node_Str",trustStorePassword);
    }
    env.put(Context.PROVIDER_URL,protocol + hostname + "String_Node_Str"+ port);
    if (bindDN != null && bindPasswd != null) {
      env.put(Context.SECURITY_AUTHENTICATION,"String_Node_Str");
      env.put(Context.SECURITY_PRINCIPAL,bindDN);
      env.put(Context.SECURITY_CREDENTIALS,bindPasswd);
    }
    DirContext ctx=new InitialDirContext(env);
    ctx.close();
    ConfigurationVO cvo=_configDao.findByName(LDAPParams.hostname.toString());
    if (cvo == null) {
      cvo=new ConfigurationVO("String_Node_Str","String_Node_Str","String_Node_Str",LDAPParams.hostname.toString(),null,"String_Node_Str");
    }
    cvo.setValue(DBEncryptionUtil.encrypt(hostname));
    _configDao.persist(cvo);
    cvo=_configDao.findByName(LDAPParams.port.toString());
    if (cvo == null) {
      cvo=new ConfigurationVO("String_Node_Str","String_Node_Str","String_Node_Str",LDAPParams.port.toString(),null,"String_Node_Str");
    }
    cvo.setValue(DBEncryptionUtil.encrypt(port.toString()));
    _configDao.persist(cvo);
    cvo=_configDao.findByName(LDAPParams.queryfilter.toString());
    if (cvo == null) {
      cvo=new ConfigurationVO("String_Node_Str","String_Node_Str","String_Node_Str",LDAPParams.queryfilter.toString(),null,"String_Node_Str");
    }
    cvo.setValue(DBEncryptionUtil.encrypt(queryFilter));
    _configDao.persist(cvo);
    cvo=_configDao.findByName(LDAPParams.searchbase.toString());
    if (cvo == null) {
      cvo=new ConfigurationVO("String_Node_Str","String_Node_Str","String_Node_Str",LDAPParams.searchbase.toString(),null,"String_Node_Str");
    }
    cvo.setValue(DBEncryptionUtil.encrypt(searchBase));
    _configDao.persist(cvo);
    cvo=_configDao.findByName(LDAPParams.usessl.toString());
    if (cvo == null) {
      cvo=new ConfigurationVO("String_Node_Str","String_Node_Str","String_Node_Str",LDAPParams.usessl.toString(),null,"String_Node_Str");
    }
    cvo.setValue(DBEncryptionUtil.encrypt(useSSL.toString()));
    _configDao.persist(cvo);
    cvo=_configDao.findByName(LDAPParams.dn.toString());
    if (cvo == null) {
      cvo=new ConfigurationVO("String_Node_Str","String_Node_Str","String_Node_Str",LDAPParams.dn.toString(),null,"String_Node_Str");
    }
    cvo.setValue(DBEncryptionUtil.encrypt(bindDN));
    _configDao.persist(cvo);
    cvo=_configDao.findByName(LDAPParams.passwd.toString());
    if (cvo == null) {
      cvo=new ConfigurationVO("String_Node_Str","String_Node_Str","String_Node_Str",LDAPParams.passwd.toString(),null,"String_Node_Str");
    }
    cvo.setValue(DBEncryptionUtil.encrypt(bindPasswd));
    _configDao.persist(cvo);
    cvo=_configDao.findByName(LDAPParams.truststore.toString());
    if (cvo == null) {
      cvo=new ConfigurationVO("String_Node_Str","String_Node_Str","String_Node_Str",LDAPParams.truststore.toString(),null,"String_Node_Str");
    }
    cvo.setValue(DBEncryptionUtil.encrypt(trustStore));
    _configDao.persist(cvo);
    cvo=_configDao.findByName(LDAPParams.truststorepass.toString());
    if (cvo == null) {
      cvo=new ConfigurationVO("String_Node_Str","String_Node_Str","String_Node_Str",LDAPParams.truststorepass.toString(),null,"String_Node_Str");
    }
    cvo.setValue(DBEncryptionUtil.encrypt(trustStorePassword));
    _configDao.persist(cvo);
    s_logger.debug("String_Node_Str" + hostname);
  }
 catch (  NamingException ne) {
    ne.printStackTrace();
    throw new InvalidParameterValueException("String_Node_Str" + ne.getMessage() + (ne.getCause() != null ? ("String_Node_Str" + ne.getCause().getMessage()) : "String_Node_Str"));
  }
  return true;
}