Program: 4156
Project: 4156
Buggy source:
/** 
 * Overloaded constructor that allows the creation of Responses with meta-data and a <tt>Set</tt> of <tt>URN</tt> instances.  This  is the primary constructor that establishes all of the class's  invariants, does any necessary parameter validation, etc. If extensions is non-null, it is used as the extBytes instead of creating them from the urns and locations.
 * @param index the index of the file referenced in the response
 * @param size the size of the file (in bytes)
 * @param name the name of the file
 * @param urns the <tt>Set</tt> of <tt>URN</tt> instances associatedwith the file
 * @param doc the <tt>LimeXMLDocument</tt> instance associated withthe file
 * @param endpoints a collection of other locations on this networkthat will have this file
 * @param extensions The raw unparsed extension bytes.
 */
Response(long index,long size,String name,Set<? extends URN> urns,LimeXMLDocument doc,Set<? extends IpPort> alternateLocations,long creationTime,byte[] extensions){
  if ((index & 0xFFFFFFFF00000000L) != 0)   throw new IllegalArgumentException("String_Node_Str" + index);
  if (size < 0 || size > MAX_FILE_SIZE)   throw new IllegalArgumentException("String_Node_Str" + size);
  this.index=index;
  this.size=size;
  if (name == null)   this.name="String_Node_Str";
 else   this.name=name;
  isMetaFile=this.name.toLowerCase().endsWith("String_Node_Str");
  byte[] temp=null;
  try {
    temp=this.name.getBytes("String_Node_Str");
  }
 catch (  UnsupportedEncodingException namex) {
    ErrorService.error(namex);
  }
  this.nameBytes=temp;
  if (urns == null)   this.urns=Collections.emptySet();
 else   this.urns=Collections.unmodifiableSet(urns);
  this.alternateLocations=alternateLocations;
  this.creationTime=creationTime;
  this.extBytes=extensions;
  this.document=doc;
}

Fixed version (ground truth):
/** 
 * Overloaded constructor that allows the creation of Responses with meta-data and a <tt>Set</tt> of <tt>URN</tt> instances.  This  is the primary constructor that establishes all of the class's  invariants, does any necessary parameter validation, etc. If extensions is non-null, it is used as the extBytes instead of creating them from the urns and locations.
 * @param index the index of the file referenced in the response
 * @param size the size of the file (in bytes)
 * @param name the name of the file
 * @param urns the <tt>Set</tt> of <tt>URN</tt> instances associatedwith the file
 * @param doc the <tt>LimeXMLDocument</tt> instance associated withthe file
 * @param endpoints a collection of other locations on this networkthat will have this file
 * @param extensions The raw unparsed extension bytes.
 */
public Response(long index,long size,String name,Set<? extends URN> urns,LimeXMLDocument doc,Set<? extends IpPort> alternateLocations,long creationTime,byte[] extensions){
  if ((index & 0xFFFFFFFF00000000L) != 0)   throw new IllegalArgumentException("String_Node_Str" + index);
  if (size < 0 || size > MAX_FILE_SIZE)   throw new IllegalArgumentException("String_Node_Str" + size);
  this.index=index;
  this.size=size;
  if (name == null)   this.name="String_Node_Str";
 else   this.name=name;
  isMetaFile=this.name.toLowerCase().endsWith("String_Node_Str");
  byte[] temp=null;
  try {
    temp=this.name.getBytes("String_Node_Str");
  }
 catch (  UnsupportedEncodingException namex) {
    ErrorService.error(namex);
  }
  this.nameBytes=temp;
  if (urns == null)   this.urns=Collections.emptySet();
 else   this.urns=Collections.unmodifiableSet(urns);
  this.alternateLocations=alternateLocations;
  this.creationTime=creationTime;
  this.extBytes=extensions;
  this.document=doc;
}