Program: 62124
Project: 62124
Buggy source:
public InputsResolvingResult resolve(Map<String,Object> inputMappingMap,Map<String,PropertyDefinition> inputsDefinition){
  Map<String,PropertyValue> resolved=Maps.newHashMap();
  MapPropertySource inputMappingMapPropertySource=new MapPropertySource("String_Node_Str",inputMappingMap);
  getPropertySources().addFirst(inputMappingMapPropertySource);
  Set<String> missingVariables=Sets.newHashSet();
  Set<String> unresolvableInputs=Sets.newHashSet();
  try {
    for (    String propertyName : inputMappingMapPropertySource.getPropertyNames()) {
      Object resolvedPropertyValue=null;
      try {
        resolvedPropertyValue=resolve(propertyName,Object.class);
      }
 catch (      UnknownVariableException e) {
        missingVariables.add(e.getVariableName());
        unresolvableInputs.add(propertyName);
        continue;
      }
catch (      IllegalArgumentException e) {
        Matcher matcher=VARIABLE_NAME_IN_EXCEPTION_PATTERN.matcher(e.getMessage());
        if (matcher.matches()) {
          missingVariables.add(matcher.group(1));
          unresolvableInputs.add(propertyName);
        }
 else {
          throw new RuntimeException(e);
        }
        continue;
      }
      PropertyDefinition propertyDefinition=inputsDefinition.get(propertyName);
      PropertyValue convertedPropertyValue;
      if (resolvedPropertyValue != null && propertyDefinition != null) {
        convertedPropertyValue=converter.toPropertyValue(resolvedPropertyValue,propertyDefinition);
        if (convertedPropertyValue != null) {
          resolved.put(propertyName,convertedPropertyValue);
        }
      }
    }
  }
  finally {
    getPropertySources().remove(inputMappingMapPropertySource.getName());
  }
  return new InputsResolvingResult(resolved,unresolvableInputs,missingVariables);
}

Fixed version (ground truth):
public InputsResolvingResult resolve(Map<String,Object> inputMappingMap,Map<String,PropertyDefinition> inputsDefinition){
  Map<String,PropertyValue> resolved=Maps.newHashMap();
  MapPropertySource inputMappingMapPropertySource=new MapPropertySource("String_Node_Str",inputMappingMap);
  getPropertySources().addFirst(inputMappingMapPropertySource);
  Set<String> missingVariables=Sets.newHashSet();
  Set<String> unresolvableInputs=Sets.newHashSet();
  try {
    for (    String propertyName : inputMappingMapPropertySource.getPropertyNames()) {
      Object resolvedPropertyValue=null;
      try {
        resolvedPropertyValue=resolve(propertyName,Object.class);
      }
 catch (      UnknownVariableException e) {
        missingVariables.add(e.getVariableName());
        unresolvableInputs.add(propertyName);
        continue;
      }
catch (      IllegalArgumentException e) {
        Matcher matcher=VARIABLE_NAME_IN_EXCEPTION_PATTERN.matcher(e.getMessage());
        if (matcher.matches()) {
          missingVariables.add(matcher.group(1));
          unresolvableInputs.add(propertyName);
        }
 else {
          throw new RuntimeException(e);
        }
        continue;
      }
      PropertyDefinition propertyDefinition=inputsDefinition.get(propertyName);
      PropertyValue convertedPropertyValue;
      if (resolvedPropertyValue != null && propertyDefinition != null) {
        try {
          convertedPropertyValue=converter.toPropertyValue(resolvedPropertyValue,propertyDefinition);
        }
 catch (        IllegalStateException e) {
          convertedPropertyValue=toDefaultType(resolvedPropertyValue);
        }
        if (convertedPropertyValue != null) {
          resolved.put(propertyName,convertedPropertyValue);
        }
      }
    }
  }
  finally {
    getPropertySources().remove(inputMappingMapPropertySource.getName());
  }
  return new InputsResolvingResult(resolved,unresolvableInputs,missingVariables);
}