1
0

[HUDI-3185] HoodieConfig#getBoolean should return false when default not set (#4536)

Remove unnecessary config
This commit is contained in:
Sagar Sumit
2022-01-08 02:50:11 +05:30
committed by GitHub
parent 2e561defe9
commit 518488c633
2 changed files with 21 additions and 1 deletions

View File

@@ -146,6 +146,9 @@ public class HoodieConfig implements Serializable {
}
public <T> Boolean getBoolean(ConfigProperty<T> configProperty) {
if (configProperty.hasDefaultValue()) {
return getBooleanOrDefault(configProperty);
}
Option<Object> rawValue = getRawValue(configProperty);
return rawValue.map(v -> Boolean.parseBoolean(v.toString())).orElse(null);
}

View File

@@ -40,6 +40,11 @@ public class TestConfigProperty extends HoodieConfig {
.defaultValue("false")
.withDocumentation("Fake config only for testing");
public static ConfigProperty<String> FAKE_BOOLEAN_CONFIG_NO_DEFAULT = ConfigProperty
.key("test.fake.boolean.config")
.noDefaultValue()
.withDocumentation("Fake config only for testing");
public static ConfigProperty<Integer> FAKE_INTEGER_CONFIG = ConfigProperty
.key("test.fake.integer.config")
.defaultValue(0)
@@ -58,11 +63,23 @@ public class TestConfigProperty extends HoodieConfig {
hoodieConfig.setValue(FAKE_STRING_CONFIG, "5");
assertEquals(5, hoodieConfig.getInt(FAKE_STRING_CONFIG));
assertNull(hoodieConfig.getBoolean(FAKE_BOOLEAN_CONFIG));
assertEquals(false, hoodieConfig.getBoolean(FAKE_BOOLEAN_CONFIG));
hoodieConfig.setValue(FAKE_BOOLEAN_CONFIG, "true");
assertEquals(true, hoodieConfig.getBoolean(FAKE_BOOLEAN_CONFIG));
}
@Test
public void testGetBooleanShouldReturnFalseWhenDefaultValueFalseButNotSet() {
HoodieConfig hoodieConfig = new HoodieConfig();
assertEquals(false, hoodieConfig.getBoolean(FAKE_BOOLEAN_CONFIG));
}
@Test
public void testGetBooleanShouldReturnNullWhenNoDefaultValuePresent() {
HoodieConfig hoodieConfig = new HoodieConfig();
assertNull(hoodieConfig.getBoolean(FAKE_BOOLEAN_CONFIG_NO_DEFAULT));
}
@Test
public void testGetOrDefault() {
Properties props = new Properties();