Program: 13159
Project: 13159
Buggy source:
/** 
 * Read and process Workflow configuration file
 * @param compContext
 */
private void readConfiguration(ComponentContext compContext){
  JsonValue config=enhancedConfig.getConfigurationAsJson(compContext);
  if (!config.isNull()) {
    enabled=config.get(CONFIG_ENABLED).defaultTo(true).asBoolean();
    location=config.get(CONFIG_LOCATION).defaultTo(EngineLocation.embedded.name()).asEnum(EngineLocation.class);
    JsonValue connectionConfig=config.get(CONFIG_CONNECTION);
    jndiName=connectionConfig.get(CONFIG_JNDI_NAME).asString();
    JsonValue mailconfig=config.get(CONFIG_MAIL);
    if (!mailconfig.isNull()) {
      mailhost=mailconfig.get(new JsonPointer(CONFIG_MAIL_HOST)).asString();
      mailport=mailconfig.get(new JsonPointer(CONFIG_MAIL_PORT)).asInteger();
      mailusername=mailconfig.get(new JsonPointer(CONFIG_MAIL_USERNAME)).asString();
      mailpassword=mailconfig.get(new JsonPointer(CONFIG_MAIL_PASSWORD)).asString();
      starttls=mailconfig.get(new JsonPointer(CONFIG_MAIL_STARTTLS)).asBoolean();
    }
    JsonValue engineConfig=config.get(CONFIG_ENGINE);
    if (!engineConfig.isNull()) {
      url=config.get(new JsonPointer(CONFIG_ENGINE_URL)).asString();
      username=config.get(new JsonPointer(CONFIG_ENGINE_USERNAME)).asString();
      password=config.get(new JsonPointer(CONFIG_ENGINE_PASSWORD)).asString();
    }
    tablePrefix=config.get(CONFIG_TABLE_PREFIX).defaultTo("String_Node_Str").asString();
    tablePrefixIsSchema=config.get(CONFIG_TABLE_PREFIX_IS_SCHEMA).defaultTo(false).asBoolean();
    historyLevel=config.get(CONFIG_HISTORY).asString();
    workflowDir=config.get(CONFIG_WORKFLOWDIR).defaultTo("String_Node_Str").asString();
  }
}

Fixed version (ground truth):
/** 
 * Read and process Workflow configuration file
 * @param compContext
 */
private void readConfiguration(ComponentContext compContext){
  JsonValue config=enhancedConfig.getConfigurationAsJson(compContext);
  if (!config.isNull()) {
    enabled=config.get(CONFIG_ENABLED).defaultTo(true).asBoolean();
    location=config.get(CONFIG_LOCATION).defaultTo(EngineLocation.embedded.name()).asEnum(EngineLocation.class);
    JsonValue connectionConfig=config.get(CONFIG_CONNECTION);
    jndiName=connectionConfig.get(CONFIG_JNDI_NAME).asString();
    JsonValue mailconfig=config.get(CONFIG_MAIL);
    if (mailconfig.isNotNull()) {
      mailhost=mailconfig.get(CONFIG_MAIL_HOST).defaultTo(LOCALHOST).asString();
      mailport=mailconfig.get(CONFIG_MAIL_PORT).defaultTo(DEFAULT_MAIL_PORT).asInteger();
      mailusername=mailconfig.get(CONFIG_MAIL_USERNAME).asString();
      mailpassword=mailconfig.get(CONFIG_MAIL_PASSWORD).asString();
      starttls=mailconfig.get(CONFIG_MAIL_STARTTLS).defaultTo(false).asBoolean();
    }
    JsonValue engineConfig=config.get(CONFIG_ENGINE);
    if (!engineConfig.isNull()) {
      url=config.get(new JsonPointer(CONFIG_ENGINE_URL)).asString();
      username=config.get(new JsonPointer(CONFIG_ENGINE_USERNAME)).asString();
      password=config.get(new JsonPointer(CONFIG_ENGINE_PASSWORD)).asString();
    }
    tablePrefix=config.get(CONFIG_TABLE_PREFIX).defaultTo("String_Node_Str").asString();
    tablePrefixIsSchema=config.get(CONFIG_TABLE_PREFIX_IS_SCHEMA).defaultTo(false).asBoolean();
    historyLevel=config.get(CONFIG_HISTORY).asString();
    workflowDir=config.get(CONFIG_WORKFLOWDIR).defaultTo("String_Node_Str").asString();
  }
}