Program: 84562
Project: 84562
Buggy source:
public int doStartTag(){
  RequestContext requestContext=(RequestContext)this.pageContext.getAttribute(RequestContextAwareTag.REQUEST_CONTEXT_PAGE_ATTRIBUTE);
  if (date == null && getPath() != null) {
    try {
      String resolvedPath=ExpressionEvaluationUtils.evaluateString("String_Node_Str",getPath(),pageContext);
      String nestedPath=(String)pageContext.getAttribute(NestedPathTag.NESTED_PATH_VARIABLE_NAME,PageContext.REQUEST_SCOPE);
      if (nestedPath != null) {
        resolvedPath=nestedPath + resolvedPath;
      }
      BindStatus status=new BindStatus(requestContext,resolvedPath,false);
      log.debug("String_Node_Str" + status);
      if (status.getValue() != null) {
        log.debug("String_Node_Str" + status.getValue());
        if (status.getValue().getClass() == Date.class)         date=(Date)status.getValue();
 else {
          log.debug("String_Node_Str" + status.getValueType());
          Timestamp timestamp=(Timestamp)status.getEditor().getValue();
          date=new Date(timestamp.getTime());
        }
      }
    }
 catch (    Exception e) {
      log.warn("String_Node_Str" + getPath(),e);
      return SKIP_BODY;
    }
  }
  if (dateWasSet == false && date == null) {
    log.warn("String_Node_Str" + pageContext.getPage() + "String_Node_Str"+ pageContext.getRequest().getLocalName()+ "String_Node_Str"+ pageContext.getRequest().getRequestDispatcher("String_Node_Str"));
    return SKIP_BODY;
  }
  if (type == null)   type="String_Node_Str";
  DateFormat dateFormat=null;
  if (format != null && format.length() > 0) {
    dateFormat=new SimpleDateFormat(format);
  }
 else   if (type.equals("String_Node_Str")) {
    dateFormat=new SimpleDateFormat("String_Node_Str");
  }
 else {
    log.debug("String_Node_Str" + Context.getLocale());
    if (type.equals("String_Node_Str")) {
      dateFormat=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,Context.getLocale());
    }
 else     if (type.equals("String_Node_Str")) {
      dateFormat=DateFormat.getDateInstance(DateFormat.MEDIUM,Context.getLocale());
    }
 else     if (type.equals("String_Node_Str")) {
      dateFormat=Context.getDateFormat();
    }
 else {
      dateFormat=Context.getDateFormat();
    }
  }
  if (dateFormat == null)   dateFormat=new SimpleDateFormat("String_Node_Str");
  String datestr="String_Node_Str";
  try {
    if (date != null && !date.equals("String_Node_Str")) {
      datestr=dateFormat.format(date).toString();
    }
  }
 catch (  IllegalArgumentException e) {
    log.error("String_Node_Str" + date);
    log.error("String_Node_Str" + format);
    log.error(e);
    datestr=date.toString();
  }
  try {
    pageContext.getOut().write(datestr);
  }
 catch (  IOException e) {
    log.error(e);
  }
  release();
  return SKIP_BODY;
}

Fixed version (ground truth):
public int doStartTag(){
  RequestContext requestContext=(RequestContext)this.pageContext.getAttribute(RequestContextAwareTag.REQUEST_CONTEXT_PAGE_ATTRIBUTE);
  if (date == null && getPath() != null) {
    try {
      String resolvedPath=ExpressionEvaluationUtils.evaluateString("String_Node_Str",getPath(),pageContext);
      String nestedPath=(String)pageContext.getAttribute(NestedPathTag.NESTED_PATH_VARIABLE_NAME,PageContext.REQUEST_SCOPE);
      if (nestedPath != null) {
        resolvedPath=nestedPath + resolvedPath;
      }
      BindStatus status=new BindStatus(requestContext,resolvedPath,false);
      log.debug("String_Node_Str" + status);
      if (status.getValue() != null) {
        log.debug("String_Node_Str" + status.getValue());
        if (status.getValue().getClass() == Date.class)         date=(Date)status.getValue();
 else {
          log.debug("String_Node_Str" + status.getValueType());
          Timestamp timestamp=(Timestamp)status.getEditor().getValue();
          date=new Date(timestamp.getTime());
        }
      }
    }
 catch (    Exception e) {
      log.warn("String_Node_Str" + getPath(),e);
      return SKIP_BODY;
    }
  }
  if (dateWasSet == false && date == null) {
    log.warn("String_Node_Str" + pageContext.getPage() + "String_Node_Str"+ pageContext.getRequest().getLocalName()+ "String_Node_Str"+ pageContext.getRequest().getRequestDispatcher("String_Node_Str"));
    return SKIP_BODY;
  }
  if (type == null)   type="String_Node_Str";
  DateFormat dateFormat=null;
  if (format != null && format.length() > 0) {
    dateFormat=new SimpleDateFormat(format);
  }
 else   if (type.equals("String_Node_Str")) {
    dateFormat=new SimpleDateFormat("String_Node_Str");
  }
 else {
    log.debug("String_Node_Str" + Context.getLocale());
    if (type.equals("String_Node_Str")) {
      dateFormat=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,Context.getLocale());
    }
 else     if (type.equals("String_Node_Str")) {
      dateFormat=DateFormat.getDateInstance(DateFormat.MEDIUM,Context.getLocale());
    }
 else     if (type.equals("String_Node_Str")) {
      dateFormat=Context.getDateFormat();
    }
 else {
      dateFormat=Context.getDateFormat();
    }
  }
  if (dateFormat == null)   dateFormat=new SimpleDateFormat("String_Node_Str");
  String datestr="String_Node_Str";
  try {
    if (date != null) {
      datestr=dateFormat.format(date);
    }
  }
 catch (  IllegalArgumentException e) {
    log.error("String_Node_Str" + date);
    log.error("String_Node_Str" + format);
    log.error(e);
    datestr=date.toString();
  }
  try {
    pageContext.getOut().write(datestr);
  }
 catch (  IOException e) {
    log.error(e);
  }
  release();
  return SKIP_BODY;
}