Program: 89383
Project: 89383
Buggy source:
/** 
 * Determines whether the given node type matches the path of the given object
 * @see org.springframework.extensions.config.evaluator.Evaluator#applies(java.lang.Object,java.lang.String)
 */
public boolean applies(Object obj,String condition){
  boolean result=false;
  if (obj instanceof String) {
    String objAsString=(String)obj;
    if (objAsString.indexOf(':') != -1 || objAsString.startsWith("String_Node_Str") == true) {
      Matcher m=nodeRefPattern.matcher(objAsString);
      if (m.matches()) {
        try {
          String jsonResponseString=callService("String_Node_Str" + objAsString);
          if (jsonResponseString != null) {
            result=checkJsonAgainstCondition(condition,jsonResponseString);
          }
 else           if (getLogger().isWarnEnabled()) {
            getLogger().warn("String_Node_Str");
          }
        }
 catch (        ConnectorServiceException e) {
          if (getLogger().isWarnEnabled()) {
            getLogger().warn("String_Node_Str",e);
          }
        }
      }
 else {
        try {
          String jsonResponseString=callService("String_Node_Str" + URLEncoder.encodeUriComponent(objAsString));
          if (jsonResponseString != null) {
            result=checkJsonAgainstCondition(condition,jsonResponseString);
          }
 else           if (getLogger().isWarnEnabled()) {
            getLogger().warn("String_Node_Str");
          }
        }
 catch (        ConnectorServiceException e) {
          if (getLogger().isWarnEnabled()) {
            getLogger().warn("String_Node_Str",e);
          }
        }
      }
    }
  }
  return result;
}

Fixed version (ground truth):
/** 
 * Determines whether the given node type matches the path of the given object
 * @see org.springframework.extensions.config.evaluator.Evaluator#applies(java.lang.Object,java.lang.String)
 */
public boolean applies(Object obj,String condition){
  boolean result=false;
  if (obj instanceof String) {
    String objAsString=(String)obj;
    if (objAsString.indexOf(':') != -1 || objAsString.startsWith("String_Node_Str") == true) {
      Matcher m=NODE_REF_PATTERN.matcher(objAsString);
      if (m.matches()) {
        try {
          String jsonResponseString=callService("String_Node_Str" + objAsString);
          if (jsonResponseString != null) {
            result=checkJsonAgainstCondition(condition,jsonResponseString);
          }
 else           if (getLogger().isWarnEnabled()) {
            getLogger().warn("String_Node_Str");
          }
        }
 catch (        ConnectorServiceException e) {
          if (getLogger().isWarnEnabled()) {
            getLogger().warn("String_Node_Str",e);
          }
        }
      }
 else {
        try {
          String jsonResponseString=callService("String_Node_Str" + URLEncoder.encodeUriComponent(objAsString));
          if (jsonResponseString != null) {
            result=checkJsonAgainstCondition(condition,jsonResponseString);
          }
 else           if (getLogger().isWarnEnabled()) {
            getLogger().warn("String_Node_Str");
          }
        }
 catch (        ConnectorServiceException e) {
          if (getLogger().isWarnEnabled()) {
            getLogger().warn("String_Node_Str",e);
          }
        }
      }
    }
  }
  return result;
}