Source:
<code>private void setResultSetMetadata() throws Exception { dbManager.ensureJDBCDriverIsAvailable(driverClass); Map<String, Integer> columnToType = new TreeMap<> ( <START> new Comparator<String>() { <END> @Override public int compare(String o1, String o2) { return o1.compareToIgnoreCase(o2); } } ); Connection connection; if (dbSinkConfig.user == null) { connection = DriverManager.getConnection(dbSinkConfig.connectionString); } else { connection = DriverManager.getConnection(dbSinkConfig.connectionString, dbSinkConfig.user, dbSinkConfig.password); } try { try (Statement statement = connection.createStatement(); ResultSet rs = statement.executeQuery(String.format("SELECT %s FROM %s WHERE 1 = 0", dbSinkConfig.columns, dbSinkConfig.tableName)) ) { ResultSetMetaData resultSetMetadata = rs.getMetaData(); FieldCase fieldCase = FieldCase.toFieldCase(dbSinkConfig.columnNameCase); for (int i = 0; i < rs.getMetaData().getColumnCount(); i++) { String name = resultSetMetadata.getColumnName(i + 1); int type = resultSetMetadata.getColumnType(i + 1); if (fieldCase == FieldCase.LOWER) { name = name.toLowerCase(); } else if (fieldCase == FieldCase.UPPER) { name = name.toUpperCase(); } columnToType.put(name, type); } } } finally { connection.close(); } columns = ImmutableList.copyOf(Splitter.on(",").omitEmptyStrings().trimResults().split(dbSinkConfig.columns)); columnTypes = new int[columns.size()]; for (int i = 0; i < columnTypes.length; i++) { String name = columns.get(i); Preconditions.checkArgument(columnToType.containsKey(name), "Missing column '%s' in SQL table", name); columnTypes[i] = columnToType.get(name); } }</code><technical_language>String class a case insensitive comparator String.CASE_INSENSITIVE_ORDER. Please instead</technical_language>

Target:
private void setResultSetMetadata() throws Exception { Map<String, Integer> columnToType = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); dbManager.ensureJDBCDriverIsAvailable(driverClass); Connection connection; if (dbSinkConfig.user == null) { connection = DriverManager.getConnection(dbSinkConfig.connectionString); } else { connection = DriverManager.getConnection(dbSinkConfig.connectionString, dbSinkConfig.user, dbSinkConfig.password); } try { try (Statement statement = connection.createStatement(); ResultSet rs = statement.executeQuery(String.format("SELECT %s FROM %s WHERE 1 = 0", dbSinkConfig.columns, dbSinkConfig.tableName)) ) { ResultSetMetaData resultSetMetadata = rs.getMetaData(); FieldCase fieldCase = FieldCase.toFieldCase(dbSinkConfig.columnNameCase); for (int i = 0; i < rs.getMetaData().getColumnCount(); i++) { String name = resultSetMetadata.getColumnName(i + 1); int type = resultSetMetadata.getColumnType(i + 1); if (fieldCase == FieldCase.LOWER) { name = name.toLowerCase(); } else if (fieldCase == FieldCase.UPPER) { name = name.toUpperCase(); } columnToType.put(name, type); } } } finally { connection.close(); } columns = ImmutableList.copyOf(Splitter.on(",").omitEmptyStrings().trimResults().split(dbSinkConfig.columns)); columnTypes = new int[columns.size()]; for (int i = 0; i < columnTypes.length; i++) { String name = columns.get(i); Preconditions.checkArgument(columnToType.containsKey(name), "Missing column '%s' in SQL table", name); columnTypes[i] = columnToType.get(name); } }