1
0
mirror of synced 2025-12-23 21:03:15 -05:00

prevent NPEs when password isn't set for jdbc integrations (#927)

This commit is contained in:
Jared Rhizor
2020-11-11 20:48:52 -08:00
committed by GitHub
parent 3f91d34198
commit ae25781fd9
3 changed files with 22 additions and 13 deletions

View File

@@ -43,15 +43,19 @@ public class MySqlSource extends AbstractJdbcSource implements Source {
}
@Override
public JsonNode toJdbcConfig(JsonNode mySqlConfig) {
return Jsons.jsonNode(ImmutableMap.builder()
.put("username", mySqlConfig.get("username").asText())
.put("password", mySqlConfig.get("password").asText())
public JsonNode toJdbcConfig(JsonNode config) {
ImmutableMap.Builder<Object, Object> configBuilder = ImmutableMap.builder()
.put("username", config.get("username").asText())
.put("jdbc_url", String.format("jdbc:mysql://%s:%s/%s",
mySqlConfig.get("host").asText(),
mySqlConfig.get("port").asText(),
mySqlConfig.get("database").asText()))
.build());
config.get("host").asText(),
config.get("port").asText(),
config.get("database").asText()));
if (config.has("password")) {
configBuilder.put("password", config.get("password").asText());
}
return Jsons.jsonNode(configBuilder.build());
}
public static void main(String[] args) throws Exception {