Program: 68394
Project: 68394
Buggy source:
public void test(){
  ReadAllQuery readQuery=new ReadAllQuery(Employee.class);
  DatabaseCall call;
  SQLCall sqlCall;
  StoredProcedureCall spCall;
  boolean useInOut=getSession().getPlatform().isSybase();
  if (useCustomSQL) {
    String prefix;
    if (useInOut) {
      prefix="String_Node_Str";
    }
 else {
      prefix="String_Node_Str";
    }
    sqlCall=new SQLCall("String_Node_Str" + prefix + "String_Node_Str");
    sqlCall.setCustomSQLArgumentType("String_Node_Str",BigDecimal.class);
    call=sqlCall;
  }
 else {
    spCall=new StoredProcedureCall();
    spCall.setProcedureName("String_Node_Str");
    spCall.addNamedArgument("String_Node_Str","String_Node_Str");
    if (useInOut) {
      spCall.addNamedInOutputArgumentValue("String_Node_Str",new Long(0),"String_Node_Str",java.math.BigDecimal.class);
    }
 else {
      spCall.addNamedOutputArgument("String_Node_Str","String_Node_Str",BigDecimal.class);
    }
    call=spCall;
  }
  call.setReturnsResultSet(true);
  readQuery.setCall(call);
  readQuery.addArgument("String_Node_Str");
  if (useCustomSQL && useInOut) {
    readQuery.addArgument("String_Node_Str");
  }
  getSession().removeQuery("String_Node_Str");
  getSession().addQuery("String_Node_Str",readQuery);
  Vector args=new Vector(2);
  args.addElement(new Integer(1));
  if (useCustomSQL && useInOut) {
    args.addElement(new Long(0));
  }
  try {
    Vector vResult=(Vector)getSession().executeQuery("String_Node_Str",args);
  }
 catch (  ClassCastException e) {
    throw new TestErrorException("String_Node_Str");
  }
  readQuery=new ReadAllQuery(Employee.class);
  if (useCustomSQL) {
    return;
  }
 else {
    spCall=new StoredProcedureCall();
    spCall.setProcedureName("String_Node_Str");
    spCall.addNamedArgumentValue("String_Node_Str",new Integer(1));
    if (useInOut) {
      spCall.addNamedInOutputArgumentValue("String_Node_Str",new Long(0),"String_Node_Str",java.math.BigDecimal.class);
    }
 else {
      spCall.addNamedOutputArgument("String_Node_Str","String_Node_Str",BigDecimal.class);
    }
    call=spCall;
  }
  call.setReturnsResultSet(true);
  readQuery.setCall(call);
  try {
    Vector vResult=(Vector)getSession().executeQuery(readQuery);
  }
 catch (  ClassCastException e) {
    throw new TestErrorException("String_Node_Str");
  }
}

Fixed version (ground truth):
public void test(){
  ReadAllQuery readQuery=new ReadAllQuery(Employee.class);
  DatabaseCall call;
  SQLCall sqlCall;
  StoredProcedureCall spCall;
  boolean useInOut=getSession().getPlatform().isSybase();
  if (useCustomSQL) {
    String prefix;
    if (useInOut) {
      prefix="String_Node_Str";
    }
 else {
      prefix="String_Node_Str";
    }
    sqlCall=new SQLCall("String_Node_Str" + prefix + "String_Node_Str"+ getSession().getPlatform().getOutputProcedureToken());
    sqlCall.setCustomSQLArgumentType("String_Node_Str",BigDecimal.class);
    call=sqlCall;
  }
 else {
    spCall=new StoredProcedureCall();
    spCall.setProcedureName("String_Node_Str");
    spCall.addNamedArgument("String_Node_Str","String_Node_Str");
    if (useInOut) {
      spCall.addNamedInOutputArgumentValue("String_Node_Str",new Long(0),"String_Node_Str",java.math.BigDecimal.class);
    }
 else {
      spCall.addNamedOutputArgument("String_Node_Str","String_Node_Str",BigDecimal.class);
    }
    call=spCall;
  }
  call.setReturnsResultSet(true);
  readQuery.setCall(call);
  readQuery.addArgument("String_Node_Str");
  if (useCustomSQL && useInOut) {
    readQuery.addArgument("String_Node_Str");
  }
  getSession().removeQuery("String_Node_Str");
  getSession().addQuery("String_Node_Str",readQuery);
  Vector args=new Vector(2);
  args.addElement(new Integer(1));
  if (useCustomSQL && useInOut) {
    args.addElement(new Long(0));
  }
  try {
    Vector vResult=(Vector)getSession().executeQuery("String_Node_Str",args);
  }
 catch (  ClassCastException e) {
    throw new TestErrorException("String_Node_Str");
  }
  readQuery=new ReadAllQuery(Employee.class);
  if (useCustomSQL) {
    return;
  }
 else {
    spCall=new StoredProcedureCall();
    spCall.setProcedureName("String_Node_Str");
    spCall.addNamedArgumentValue("String_Node_Str",new Integer(1));
    if (useInOut) {
      spCall.addNamedInOutputArgumentValue("String_Node_Str",new Long(0),"String_Node_Str",java.math.BigDecimal.class);
    }
 else {
      spCall.addNamedOutputArgument("String_Node_Str","String_Node_Str",BigDecimal.class);
    }
    call=spCall;
  }
  call.setReturnsResultSet(true);
  readQuery.setCall(call);
  try {
    Vector vResult=(Vector)getSession().executeQuery(readQuery);
  }
 catch (  ClassCastException e) {
    throw new TestErrorException("String_Node_Str");
  }
}