Program: 3487
Project: 3487
Buggy source:
/** 
 * Utility method for obtaining a string representation of the browse.  This is useful only for debug
 */
public String toString(){
  try {
    StringBuffer sb=new StringBuffer();
    String from=Integer.toString(overallPosition + 1);
    String to=Integer.toString(overallPosition + results.size());
    String of=Integer.toString(total);
    sb.append("String_Node_Str");
    sb.append("String_Node_Str" + from + "String_Node_Str"+ to+ "String_Node_Str"+ of+ "String_Node_Str");
    sb.append("String_Node_Str" + browseIndex.getName() + "String_Node_Str"+ browseIndex.getDataType()+ "String_Node_Str"+ browseIndex.getDisplayType()+ "String_Node_Str");
    sb.append("String_Node_Str");
    String container="String_Node_Str";
    DSpaceObject theContainer=null;
    if (inCollection()) {
      container="String_Node_Str";
      theContainer=this.collection;
    }
 else     if (inCommunity()) {
      container="String_Node_Str";
      theContainer=this.community;
    }
    String containerID="String_Node_Str";
    if (theContainer != null) {
      containerID=Integer.toString(theContainer.getID()) + "String_Node_Str" + theContainer.getHandle()+ "String_Node_Str";
    }
    sb.append("String_Node_Str" + container + "String_Node_Str"+ containerID);
    sb.append("String_Node_Str");
    ItemListConfig config=new ItemListConfig();
    if (browseIndex.isItemIndex()) {
      sb.append("String_Node_Str" + Integer.toString(config.numCols()) + "String_Node_Str");
      for (int k=1; k <= config.numCols(); k++) {
        if (k > 1) {
          sb.append("String_Node_Str");
        }
        String[] meta=config.getMetadata(k);
        sb.append(meta[0] + "String_Node_Str" + meta[1]+ "String_Node_Str"+ meta[2]);
      }
      if (value != null) {
        sb.append("String_Node_Str" + value);
      }
      if (isStartsWith()) {
        sb.append("String_Node_Str" + focus);
      }
 else       if (hasFocus()) {
        sb.append("String_Node_Str" + focus);
      }
    }
 else     if (browseIndex.isMetadataIndex()) {
      sb.append("String_Node_Str" + browseIndex.getMetadata());
      if (isStartsWith()) {
        sb.append("String_Node_Str" + focus);
      }
 else       if (hasFocus()) {
        sb.append("String_Node_Str" + focus);
      }
    }
    sb.append("String_Node_Str");
    String direction=(ascending ? "String_Node_Str" : "String_Node_Str");
    sb.append("String_Node_Str" + sortOption.getMetadata() + "String_Node_Str"+ direction+ "String_Node_Str"+ Integer.toString(sortOption.getNumber())+ "String_Node_Str");
    sb.append("String_Node_Str");
    if (browseIndex.isMetadataIndex() && !isSecondLevel()) {
      sb.append(valueListingString());
    }
 else     if (browseIndex.isItemIndex() || isSecondLevel()) {
      sb.append(fullListingString(config));
    }
    sb.append("String_Node_Str");
    sb.append("String_Node_Str");
    if (hasNextPage()) {
      if (browseIndex.isMetadataIndex() && !isSecondLevel()) {
        sb.append(this.nextValue);
      }
 else       if (browseIndex.isItemIndex() || isSecondLevel()) {
        sb.append("String_Node_Str" + Integer.toString(this.nextItem));
      }
    }
 else {
      sb.append("String_Node_Str");
    }
    sb.append("String_Node_Str");
    sb.append("String_Node_Str");
    if (hasPrevPage()) {
      if (browseIndex.isMetadataIndex() && !isSecondLevel()) {
        sb.append(this.prevValue);
      }
 else       if (browseIndex.isItemIndex() || isSecondLevel()) {
        sb.append("String_Node_Str" + Integer.toString(this.prevItem));
      }
    }
 else {
      sb.append("String_Node_Str");
    }
    sb.append("String_Node_Str");
    return sb.toString();
  }
 catch (  SQLException e) {
    return e.getMessage();
  }
catch (  BrowseException e) {
    return e.getMessage();
  }
}

Fixed version (ground truth):
/** 
 * Utility method for obtaining a string representation of the browse.  This is useful only for debug
 */
public String toString(){
  try {
    StringBuffer sb=new StringBuffer();
    String from=Integer.toString(overallPosition + 1);
    String to=Integer.toString(overallPosition + results.size());
    String of=Integer.toString(total);
    sb.append("String_Node_Str");
    sb.append("String_Node_Str" + from + "String_Node_Str"+ to+ "String_Node_Str"+ of+ "String_Node_Str");
    sb.append("String_Node_Str" + browseIndex.getName() + "String_Node_Str"+ browseIndex.getDataType()+ "String_Node_Str"+ browseIndex.getDisplayType()+ "String_Node_Str");
    sb.append("String_Node_Str");
    String container="String_Node_Str";
    DSpaceObject theContainer=null;
    if (inCollection()) {
      container="String_Node_Str";
      theContainer=this.collection;
    }
 else     if (inCommunity()) {
      container="String_Node_Str";
      theContainer=this.community;
    }
    String containerID="String_Node_Str";
    if (theContainer != null) {
      containerID=Integer.toString(theContainer.getID()) + "String_Node_Str" + theContainer.getHandle()+ "String_Node_Str";
    }
    sb.append("String_Node_Str" + container + "String_Node_Str"+ containerID);
    sb.append("String_Node_Str");
    ItemListConfig config=new ItemListConfig();
    if (browseIndex.isItemIndex()) {
      sb.append("String_Node_Str" + Integer.toString(config.numCols()) + "String_Node_Str");
      for (int k=1; k <= config.numCols(); k++) {
        if (k > 1) {
          sb.append("String_Node_Str");
        }
        String[] meta=config.getMetadata(k);
        sb.append(meta[0] + "String_Node_Str" + meta[1]+ "String_Node_Str"+ meta[2]);
      }
      if (value != null) {
        sb.append("String_Node_Str" + value);
      }
      if (isStartsWith()) {
        sb.append("String_Node_Str" + focus);
      }
 else       if (hasFocus()) {
        sb.append("String_Node_Str" + focus);
      }
    }
 else     if (browseIndex.isMetadataIndex()) {
      sb.append("String_Node_Str" + browseIndex.getMetadata());
      if (isStartsWith()) {
        sb.append("String_Node_Str" + focus);
      }
 else       if (hasFocus()) {
        sb.append("String_Node_Str" + focus);
      }
    }
    sb.append("String_Node_Str");
    String direction=(ascending ? "String_Node_Str" : "String_Node_Str");
    sb.append("String_Node_Str" + sortOption.getMetadata() + "String_Node_Str"+ direction+ "String_Node_Str"+ Integer.toString(sortOption.getNumber())+ "String_Node_Str");
    sb.append("String_Node_Str");
    if (browseIndex.isMetadataIndex() && !isSecondLevel()) {
      sb.append(valueListingString());
    }
 else     if (browseIndex.isItemIndex() || isSecondLevel()) {
      sb.append(fullListingString(config));
    }
    sb.append("String_Node_Str");
    sb.append("String_Node_Str");
    if (hasNextPage()) {
      sb.append("String_Node_Str" + Integer.toString(this.nextOffset));
    }
 else {
      sb.append("String_Node_Str");
    }
    sb.append("String_Node_Str");
    sb.append("String_Node_Str");
    if (hasPrevPage()) {
      sb.append("String_Node_Str" + Integer.toString(this.prevOffset));
    }
 else {
      sb.append("String_Node_Str");
    }
    sb.append("String_Node_Str");
    return sb.toString();
  }
 catch (  SQLException e) {
    return e.getMessage();
  }
catch (  BrowseException e) {
    return e.getMessage();
  }
}