Program: 3554
Project: 3554
Buggy source:
public ResultSet getColumns(String c,String s,String tbl,String colPat) throws SQLException {
  Statement stat=conn.createStatement();
  ResultSet rs;
  String sql;
  checkOpen();
  if (getColumnsTblName == null)   getColumnsTblName=conn.prepareStatement("String_Node_Str");
  getColumnsTblName.setString(1,tbl);
  rs=getColumnsTblName.executeQuery();
  if (!rs.next())   return rs;
  tbl=rs.getString(1);
  rs.close();
  sql="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str" + escape(tbl) + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  rs=stat.executeQuery("String_Node_Str" + escape(tbl) + "String_Node_Str");
  boolean colFound=false;
  for (int i=0; rs.next(); i++) {
    String colName=rs.getString(2);
    String colType=rs.getString(3);
    String colNotNull=rs.getString(4);
    int colNullable=2;
    if (colNotNull != null)     colNullable=colNotNull.equals("String_Node_Str") ? 1 : 0;
    if (colFound)     sql+="String_Node_Str";
    colFound=true;
    colType=colType == null ? "String_Node_Str" : colType.toUpperCase();
    int colJavaType=-1;
    if (colType.equals("String_Node_Str") || colType.equals("String_Node_Str"))     colJavaType=Types.INTEGER;
 else     if (colType.equals("String_Node_Str"))     colJavaType=Types.VARCHAR;
 else     if (colType.equals("String_Node_Str"))     colJavaType=Types.FLOAT;
 else     colJavaType=Types.VARCHAR;
    sql+="String_Node_Str" + i + "String_Node_Str"+ colNullable+ "String_Node_Str"+ colJavaType+ "String_Node_Str"+ escape(colName)+ "String_Node_Str"+ escape(colType)+ "String_Node_Str";
    if (colPat != null)     sql+="String_Node_Str" + escape(colPat) + "String_Node_Str";
  }
  sql+=colFound ? "String_Node_Str" : "String_Node_Str" + "String_Node_Str";
  rs.close();
  return stat.executeQuery(sql);
}

Fixed version (ground truth):
public ResultSet getColumns(String c,String s,String tbl,String colPat) throws SQLException {
  Statement stat=conn.createStatement();
  ResultSet rs;
  String sql;
  checkOpen();
  if (getColumnsTblName == null)   getColumnsTblName=conn.prepareStatement("String_Node_Str");
  getColumnsTblName.setString(1,tbl);
  rs=getColumnsTblName.executeQuery();
  if (!rs.next())   return rs;
  tbl=rs.getString(1);
  rs.close();
  sql="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str" + escape(tbl) + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  rs=stat.executeQuery("String_Node_Str" + escape(tbl) + "String_Node_Str");
  boolean colFound=false;
  for (int i=0; rs.next(); i++) {
    String colName=rs.getString(2);
    String colType=rs.getString(3);
    String colNotNull=rs.getString(4);
    int colNullable=2;
    if (colNotNull != null)     colNullable=colNotNull.equals("String_Node_Str") ? 1 : 0;
    if (colFound)     sql+="String_Node_Str";
    colFound=true;
    colType=colType == null ? "String_Node_Str" : colType.toUpperCase();
    int colJavaType=-1;
    if (colType.matches("String_Node_Str"))     colJavaType=Types.INTEGER;
 else     if (colType.matches("String_Node_Str"))     colJavaType=Types.VARCHAR;
 else     if (colType.matches("String_Node_Str"))     colJavaType=Types.FLOAT;
 else     colJavaType=Types.VARCHAR;
    sql+="String_Node_Str" + i + "String_Node_Str"+ colNullable+ "String_Node_Str"+ colJavaType+ "String_Node_Str"+ escape(colName)+ "String_Node_Str"+ escape(colType)+ "String_Node_Str";
    if (colPat != null)     sql+="String_Node_Str" + escape(colPat) + "String_Node_Str";
  }
  sql+=colFound ? "String_Node_Str" : "String_Node_Str" + "String_Node_Str";
  rs.close();
  return stat.executeQuery(sql);
}