HOP-3685 : Metadata annotation defaultBoolean is not used
diff --git a/core/src/main/java/org/apache/hop/metadata/serializer/json/JsonMetadataParser.java b/core/src/main/java/org/apache/hop/metadata/serializer/json/JsonMetadataParser.java
index 10ff37e..8f8ab93 100644
--- a/core/src/main/java/org/apache/hop/metadata/serializer/json/JsonMetadataParser.java
+++ b/core/src/main/java/org/apache/hop/metadata/serializer/json/JsonMetadataParser.java
@@ -68,9 +68,20 @@
key = field.getName();
}
keyFieldMap.put(key, field);
+
+ // We need to go over the boolean fields and consider the defaultBoolean flag.
+ // If we don't do this we'll always get the value specified in the constructor.
+ //
+ Class<?> fieldType = field.getType();
+ if (Boolean.class.equals(fieldType) || boolean.class.equals(fieldType)) {
+ ReflectionUtil.setFieldValue(
+ object, field.getName(), fieldType, metadataProperty.defaultBoolean());
+ }
}
}
+ // Load all the properties found in the JSON...
+ //
try {
while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
String key = jsonParser.getCurrentName();