Skip to content

Commit

Permalink
prevent NPEs when password isn't set for jdbc integrations (#927)
Browse files Browse the repository at this point in the history
  • Loading branch information
jrhizor authored Nov 12, 2020
1 parent 3f91d34 commit ae25781
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -176,9 +176,10 @@ public Stream<AirbyteMessage> read(JsonNode config, AirbyteCatalog catalog, Json

private Database createDatabase(JsonNode config) {
final JsonNode jdbcConfig = toJdbcConfig(config);

return Databases.createDatabase(
jdbcConfig.get("username").asText(),
jdbcConfig.get("password").asText(),
jdbcConfig.has("password") ? jdbcConfig.get("password").asText() : null,
jdbcConfig.get("jdbc_url").asText(),
driverClass,
dialect);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,19 @@ public MySqlSource() {
}

@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 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,18 @@ public PostgresSource() {

@Override
public JsonNode toJdbcConfig(JsonNode config) {
return Jsons.jsonNode(ImmutableMap.builder()
ImmutableMap.Builder<Object, Object> configBuilder = ImmutableMap.builder()
.put("username", config.get("username").asText())
.put("password", config.get("password").asText())
.put("jdbc_url", String.format("jdbc:postgresql://%s:%s/%s",
config.get("host").asText(),
config.get("port").asText(),
config.get("database").asText()))
.build());
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 {
Expand Down

0 comments on commit ae25781

Please sign in to comment.