Program: 146805
Project: 146805
Buggy source:
/** 
 * Reads the form definition object from the supplied stream. Requires that the instance has been set to a prototype of the instance that should be used for deserialization.
 * @param dis - the stream to read from.
 * @throws IOException
 * @throws InstantiationException
 * @throws IllegalAccessException
 */
public void readExternal(DataInputStream dis,PrototypeFactory pf) throws IOException, DeserializationException {
  setID(ExtUtil.readInt(dis));
  setName(ExtUtil.nullIfEmpty(ExtUtil.readString(dis)));
  setTitle((String)ExtUtil.read(dis,new ExtWrapNullable(String.class),pf));
  setChildren((Vector)ExtUtil.read(dis,new ExtWrapListPoly(),pf));
  setInstance((FormInstance)ExtUtil.read(dis,FormInstance.class,pf));
  setLocalizer((Localizer)ExtUtil.read(dis,new ExtWrapNullable(Localizer.class),pf));
  Vector vcond=(Vector)ExtUtil.read(dis,new ExtWrapList(Condition.class),pf);
  for (Enumeration e=vcond.elements(); e.hasMoreElements(); ) {
    addTriggerable((Condition)e.nextElement());
  }
  Vector vcalc=(Vector)ExtUtil.read(dis,new ExtWrapList(Recalculate.class),pf);
  for (Enumeration e=vcalc.elements(); e.hasMoreElements(); ) {
    addTriggerable((Recalculate)e.nextElement());
  }
  finalizeTriggerables();
  outputFragments=(Vector)ExtUtil.read(dis,new ExtWrapListPoly(),pf);
  submissionProfiles=(Hashtable<String,SubmissionProfile>)ExtUtil.read(dis,new ExtWrapMap(String.class,SubmissionProfile.class));
  formInstances=(Hashtable<String,DataInstance>)ExtUtil.read(dis,new ExtWrapMap(String.class,new ExtWrapTagged()));
  eventListeners=(Hashtable<String,Vector<Action>>)ExtUtil.read(dis,new ExtWrapMap(String.class,new ExtWrapListPoly()));
  extensions=(Vector)ExtUtil.read(dis,new ExtWrapListPoly(),pf);
  setEvaluationContext(new EvaluationContext(null));
}

Fixed version (ground truth):
/** 
 * Reads the form definition object from the supplied stream. Requires that the instance has been set to a prototype of the instance that should be used for deserialization.
 * @param dis - the stream to read from.
 * @throws IOException
 * @throws InstantiationException
 * @throws IllegalAccessException
 */
public void readExternal(DataInputStream dis,PrototypeFactory pf) throws IOException, DeserializationException {
  setID(ExtUtil.readInt(dis));
  setName(ExtUtil.nullIfEmpty(ExtUtil.readString(dis)));
  setTitle((String)ExtUtil.read(dis,new ExtWrapNullable(String.class),pf));
  setChildren((Vector)ExtUtil.read(dis,new ExtWrapListPoly(),pf));
  setInstance((FormInstance)ExtUtil.read(dis,FormInstance.class,pf));
  setLocalizer((Localizer)ExtUtil.read(dis,new ExtWrapNullable(Localizer.class),pf));
  Vector vcond=(Vector)ExtUtil.read(dis,new ExtWrapList(Condition.class),pf);
  for (Enumeration e=vcond.elements(); e.hasMoreElements(); ) {
    addTriggerable((Condition)e.nextElement());
  }
  Vector vcalc=(Vector)ExtUtil.read(dis,new ExtWrapList(Recalculate.class),pf);
  for (Enumeration e=vcalc.elements(); e.hasMoreElements(); ) {
    addTriggerable((Recalculate)e.nextElement());
  }
  finalizeTriggerables();
  outputFragments=(Vector)ExtUtil.read(dis,new ExtWrapListPoly(),pf);
  submissionProfiles=(Hashtable<String,SubmissionProfile>)ExtUtil.read(dis,new ExtWrapMap(String.class,SubmissionProfile.class),pf);
  formInstances=(Hashtable<String,DataInstance>)ExtUtil.read(dis,new ExtWrapMap(String.class,new ExtWrapTagged()),pf);
  eventListeners=(Hashtable<String,Vector<Action>>)ExtUtil.read(dis,new ExtWrapMap(String.class,new ExtWrapListPoly()),pf);
  extensions=(Vector)ExtUtil.read(dis,new ExtWrapListPoly(),pf);
  setEvaluationContext(new EvaluationContext(null));
}