Program: 80130
Project: 80130
Buggy source:
public void testSQLControl() throws SQLException {
  Connection conn=getConnection();
  Statement s=createStatement();
  s.execute("String_Node_Str");
  s.execute("String_Node_Str");
  s.execute("String_Node_Str");
  String[] control={"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
  for (int i=0; i < control.length; i++) {
    StringBuffer cp=new StringBuffer(256);
    cp.append("String_Node_Str");
    cp.append(i);
    cp.append("String_Node_Str");
    cp.append(control[i]);
    cp.append("String_Node_Str");
    String cpsql=cp.toString();
    s.execute(cpsql);
    cp.setLength(0);
    cp.append("String_Node_Str");
    cp.append(i);
    cp.append("String_Node_Str");
    cp.append(control[i]);
    cp.append("String_Node_Str");
    cpsql=cp.toString();
    s.execute(cpsql);
    cp.setLength(0);
    cp.append("String_Node_Str");
    cp.append(i);
    cp.append("String_Node_Str");
    cp.append(control[i]);
    cp.append("String_Node_Str");
    cpsql=cp.toString();
    s.execute(cpsql);
    cp.setLength(0);
    cp.append("String_Node_Str");
    cp.append(i);
    cp.append("String_Node_Str");
    cp.append(control[i]);
    cp.append("String_Node_Str");
    cpsql=cp.toString();
    s.execute(cpsql);
  }
  if (!conn.getAutoCommit())   conn.commit();
  String[][] sqlControl_0={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][] sqlControl_1={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][] sqlControl_2={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][] sqlControl_3={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][] sqlControl_4={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][][] sqlControl={sqlControl_0,sqlControl_1,sqlControl_2,sqlControl_3,sqlControl_4};
  for (int i=0; i < control.length; i++) {
    String type=control[i];
    if (type.length() == 0)     type="String_Node_Str";
    for (int k=1; k <= 3; k++) {
      CallableStatement cs=conn.prepareCall("String_Node_Str" + k + "String_Node_Str"+ i+ "String_Node_Str");
      for (int rop=1; rop <= 7; rop++) {
        cs.registerOutParameter(rop,Types.VARCHAR);
      }
      cs.execute();
      for (int p=1; p <= 7; p++) {
        assertEquals(sqlControl[i][k - 1][p - 1],cs.getString(p));
      }
      cs.close();
    }
  }
  String[][] dmlSqlControl_0={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][] dmlSqlControl_1={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][] dmlSqlControl_2={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][] dmlSqlControl_3={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][] dmlSqlControl_4={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][][] dmlSqlControl={dmlSqlControl_0,dmlSqlControl_1,dmlSqlControl_2,dmlSqlControl_3,dmlSqlControl_4};
  s.execute("String_Node_Str");
  s.execute("String_Node_Str");
  for (int i=0; i < control.length; i++) {
    String type=control[i];
    if (type.length() == 0)     type="String_Node_Str";
    for (int t=0; t < control.length; t++) {
      String ttype=control[t];
      if (ttype.length() == 0)       ttype="String_Node_Str";
      CallableStatement cs=conn.prepareCall("String_Node_Str" + i + "String_Node_Str");
      cs.setInt(1,t);
      for (int rop=2; rop <= 9; rop++) {
        cs.registerOutParameter(rop,Types.VARCHAR);
      }
      cs.execute();
      for (int p=2; p <= 9; p++) {
        String so=cs.getString(p);
        if (so == null)         continue;
        assertEquals(dmlSqlControl[i][t][p - 2],so);
      }
      cs.close();
    }
  }
  testBug5280(conn);
  s.execute("String_Node_Str");
  for (int i=0; i < control.length; i++) {
    s.execute("String_Node_Str" + i);
    s.execute("String_Node_Str" + i);
    s.execute("String_Node_Str" + i);
  }
  s.execute("String_Node_Str");
  s.execute("String_Node_Str");
  s.execute("String_Node_Str");
  s.close();
}

Fixed version (ground truth):
public void testSQLControl() throws SQLException {
  Connection conn=getConnection();
  Statement s=createStatement();
  s.execute("String_Node_Str");
  s.execute("String_Node_Str");
  s.execute("String_Node_Str");
  String[] control={"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
  for (int i=0; i < control.length; i++) {
    StringBuffer cp=new StringBuffer(256);
    cp.append("String_Node_Str");
    cp.append(i);
    cp.append("String_Node_Str");
    cp.append(control[i]);
    cp.append("String_Node_Str");
    String cpsql=cp.toString();
    s.execute(cpsql);
    cp.setLength(0);
    cp.append("String_Node_Str");
    cp.append(i);
    cp.append("String_Node_Str");
    cp.append(control[i]);
    cp.append("String_Node_Str");
    cpsql=cp.toString();
    s.execute(cpsql);
    cp.setLength(0);
    cp.append("String_Node_Str");
    cp.append(i);
    cp.append("String_Node_Str");
    cp.append(control[i]);
    cp.append("String_Node_Str");
    cpsql=cp.toString();
    s.execute(cpsql);
    cp.setLength(0);
    cp.append("String_Node_Str");
    cp.append(i);
    cp.append("String_Node_Str");
    cp.append(control[i]);
    cp.append("String_Node_Str");
    cpsql=cp.toString();
    s.execute(cpsql);
  }
  if (!conn.getAutoCommit())   conn.commit();
  String[][] sqlControl_0={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][] sqlControl_1={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][] sqlControl_2={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][] sqlControl_3={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][] sqlControl_4={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][][] sqlControl={sqlControl_0,sqlControl_1,sqlControl_2,sqlControl_3,sqlControl_4};
  for (int i=0; i < control.length; i++) {
    String type=control[i];
    if (type.length() == 0)     type="String_Node_Str";
    for (int k=1; k <= 3; k++) {
      CallableStatement cs=conn.prepareCall("String_Node_Str" + k + "String_Node_Str"+ i+ "String_Node_Str");
      for (int rop=1; rop <= 7; rop++) {
        cs.registerOutParameter(rop,Types.VARCHAR);
      }
      cs.execute();
      for (int p=1; p <= 7; p++) {
        assertEquals(sqlControl[i][k - 1][p - 1],cs.getString(p));
      }
      cs.close();
    }
  }
  String[][] dmlSqlControl_0={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][] dmlSqlControl_1={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][] dmlSqlControl_2={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][] dmlSqlControl_3={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][] dmlSqlControl_4={{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"},{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"}};
  String[][][] dmlSqlControl={dmlSqlControl_0,dmlSqlControl_1,dmlSqlControl_2,dmlSqlControl_3,dmlSqlControl_4};
  s.execute("String_Node_Str");
  s.execute("String_Node_Str");
  for (int i=0; i < control.length; i++) {
    String type=control[i];
    if (type.length() == 0)     type="String_Node_Str";
    for (int t=0; t < control.length; t++) {
      String ttype=control[t];
      if (ttype.length() == 0)       ttype="String_Node_Str";
      CallableStatement cs=conn.prepareCall("String_Node_Str" + i + "String_Node_Str");
      cs.setInt(1,t);
      for (int rop=2; rop <= 9; rop++) {
        cs.registerOutParameter(rop,Types.VARCHAR);
      }
      cs.execute();
      for (int p=2; p <= 9; p++) {
        String so=cs.getString(p);
        if (so == null)         continue;
        assertEquals(dmlSqlControl[i][t][p - 2],so);
      }
      cs.close();
    }
  }
  assertCallError(usingEmbedded() ? "String_Node_Str" : "String_Node_Str","String_Node_Str");
  s.execute("String_Node_Str");
  for (int i=0; i < control.length; i++) {
    s.execute("String_Node_Str" + i);
    s.execute("String_Node_Str" + i);
    s.execute("String_Node_Str" + i);
  }
  s.execute("String_Node_Str");
  s.execute("String_Node_Str");
  s.execute("String_Node_Str");
  s.close();
}