Program: 89523
Project: 89523
Buggy source:
/** 
 * Create a new SiteSection object.
 * @param mainname The name of the entire section used in the sidebar.
 * @param prefix The prefix that all the JSP pages will have.
 * @param visiblePages How many of the pages will be visible in the menu (taken from the start of the list).
 * @param pagesAndTitles The actual pages and title-labels, without the prefix and jsp extension, involved in thesection. They must be given as an array of 2-element arrays.
 * @param dirname The top level directory this site section is deployed under.
 * @param bundle The resource bundle with translations of this sitesection.
 * @throws ArgumentNotValid if any of the elements of pagesAndTitles are not a 2-element array.
 */
public SiteSection(String mainname,String prefix,int visiblePages,String[][] pagesAndTitles,String dirname,String bundle){
  ArgumentNotValid.checkNotNullOrEmpty(mainname,"String_Node_Str");
  ArgumentNotValid.checkNotNullOrEmpty(prefix,"String_Node_Str");
  ArgumentNotValid.checkNotNegative(visiblePages,"String_Node_Str");
  ArgumentNotValid.checkNotNull(pagesAndTitles,"String_Node_Str");
  ArgumentNotValid.checkNotNullOrEmpty(dirname,"String_Node_Str");
  ArgumentNotValid.checkNotNull(bundle,"String_Node_Str");
  this.dirname=dirname;
  this.mainname=mainname;
  this.visiblePages=visiblePages;
  this.bundle=bundle;
  for (  String[] pageAndTitle : pagesAndTitles) {
    if (pageAndTitle.length != 2) {
      throw new ArgumentNotValid("String_Node_Str" + prefix);
    }
    this.pagesAndTitles.put(prefix + "String_Node_Str" + pageAndTitle[0]+ JSP_EXTENSION,pageAndTitle[1]);
  }
}

Fixed version (ground truth):
/** 
 * Create a new SiteSection object.
 * @param mainname The name of the entire section used in the sidebar.
 * @param prefix The prefix that all the JSP pages will have.
 * @param visiblePages How many of the pages will be visible in the menu (taken from the start of the list).
 * @param pagesAndTitles The actual pages and title-labels, without the prefix and jsp extension, involved in thesection. They must be given as an array of 2-element arrays.
 * @param dirname The top level directory this site section is deployed under.
 * @param bundle The resource bundle with translations of this sitesection.
 * @throws ArgumentNotValid if any of the elements of pagesAndTitles are not a 2-element array.
 */
public SiteSection(String mainname,String prefix,int visiblePages,String[][] pagesAndTitles,String dirname,String bundle){
  ArgumentNotValid.checkNotNullOrEmpty(mainname,"String_Node_Str");
  ArgumentNotValid.checkNotNullOrEmpty(prefix,"String_Node_Str");
  ArgumentNotValid.checkNotNegative(visiblePages,"String_Node_Str");
  ArgumentNotValid.checkNotNull(pagesAndTitles,"String_Node_Str");
  ArgumentNotValid.checkNotNullOrEmpty(dirname,"String_Node_Str");
  ArgumentNotValid.checkNotNull(bundle,"String_Node_Str");
  this.dirname=dirname;
  this.mainname=mainname;
  this.visiblePages=visiblePages;
  this.bundle=bundle;
  for (  String[] pageAndTitle : pagesAndTitles) {
    if (pageAndTitle.length != 2) {
      throw new ArgumentNotValid("String_Node_Str" + prefix);
    }
    String pageurl=prefix + "String_Node_Str" + pageAndTitle[0]+ JSP_EXTENSION;
    if (pageAndTitle[0].endsWith("String_Node_Str")) {
      pageurl=pageAndTitle[0];
    }
    String pagelabel=pageAndTitle[1];
    this.pagesAndTitles.put(pageurl,pagelabel);
  }
}