Program: 54373
Project: 54373
Buggy source:
private void writeClassDeserializationStatements(){
  if (typesSentToBrowser.maybeEnhanced(serializableClass) && typesSentFromBrowser.maybeEnhanced(serializableClass)) {
    sourceWriter.println(WEAK_MAPPING_CLASS_NAME + "String_Node_Str" + "String_Node_Str");
  }
  for (  JField serializableField : serializableFields) {
    JType fieldType=serializableField.getType();
    String readMethodName=Shared.getStreamReadMethodNameFor(fieldType);
    String streamReadExpression="String_Node_Str" + readMethodName + "String_Node_Str";
    if (Shared.typeNeedsCast(fieldType)) {
      streamReadExpression="String_Node_Str" + fieldType.getQualifiedSourceName() + "String_Node_Str"+ streamReadExpression;
    }
    if (needsAccessorMethods(serializableField)) {
      sourceWriter.print("String_Node_Str");
      sourceWriter.print(Shared.capitalize(serializableField.getName()));
      sourceWriter.print("String_Node_Str");
      sourceWriter.print(streamReadExpression);
      sourceWriter.println("String_Node_Str");
    }
 else {
      sourceWriter.print("String_Node_Str");
      sourceWriter.print(serializableField.getName());
      sourceWriter.print("String_Node_Str");
      sourceWriter.print(streamReadExpression);
      sourceWriter.println("String_Node_Str");
    }
  }
  sourceWriter.println();
  JClassType superClass=serializableClass.getSuperclass();
  if (superClass != null && (typesSentFromBrowser.isSerializable(superClass) || typesSentToBrowser.isSerializable(superClass))) {
    String fieldSerializerName=SerializationUtils.getFieldSerializerName(typeOracle,superClass);
    sourceWriter.print(fieldSerializerName);
    sourceWriter.println("String_Node_Str");
  }
}

Fixed version (ground truth):
private void writeClassDeserializationStatements(){
  if (serializableClass.isEnhanced()) {
    sourceWriter.println(WEAK_MAPPING_CLASS_NAME + "String_Node_Str" + "String_Node_Str");
  }
  for (  JField serializableField : serializableFields) {
    JType fieldType=serializableField.getType();
    String readMethodName=Shared.getStreamReadMethodNameFor(fieldType);
    String streamReadExpression="String_Node_Str" + readMethodName + "String_Node_Str";
    if (Shared.typeNeedsCast(fieldType)) {
      streamReadExpression="String_Node_Str" + fieldType.getQualifiedSourceName() + "String_Node_Str"+ streamReadExpression;
    }
    if (needsAccessorMethods(serializableField)) {
      sourceWriter.print("String_Node_Str");
      sourceWriter.print(Shared.capitalize(serializableField.getName()));
      sourceWriter.print("String_Node_Str");
      sourceWriter.print(streamReadExpression);
      sourceWriter.println("String_Node_Str");
    }
 else {
      sourceWriter.print("String_Node_Str");
      sourceWriter.print(serializableField.getName());
      sourceWriter.print("String_Node_Str");
      sourceWriter.print(streamReadExpression);
      sourceWriter.println("String_Node_Str");
    }
  }
  sourceWriter.println();
  JClassType superClass=serializableClass.getSuperclass();
  if (superClass != null && (typesSentFromBrowser.isSerializable(superClass) || typesSentToBrowser.isSerializable(superClass))) {
    String fieldSerializerName=SerializationUtils.getFieldSerializerName(typeOracle,superClass);
    sourceWriter.print(fieldSerializerName);
    sourceWriter.println("String_Node_Str");
  }
}