Skip to content

Commit a1277bd

Browse files
committed
fix a bug in handling of null values in transformers
1 parent 1158f65 commit a1277bd

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/main/java/com/cinchapi/etl/Transformer.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,7 @@ public default Map<String, Object> transform(Map<String, Object> object) {
9898
object.forEach((key, value) -> {
9999
Map<String, Object> data = transform(key, value);
100100
data = data == null ? AnyMaps.create(key, value) : data;
101-
data.forEach(
102-
(k, v) -> transformed.merge(k, v, MergeStrategies::upsert));
101+
AnyMaps.mergeInPlace(transformed, data, MergeStrategies::upsert);
103102
});
104103
return transformed;
105104
}

src/test/java/com/cinchapi/etl/TransformersTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.junit.Assert;
2222
import org.junit.Test;
2323

24+
import com.cinchapi.common.collect.AnyMaps;
2425
import com.cinchapi.common.describe.Empty;
2526
import com.cinchapi.concourse.Tag;
2627
import com.cinchapi.concourse.util.Random;
@@ -139,5 +140,13 @@ public void testValueRemoveIfEmpty() {
139140
Assert.assertEquals(ImmutableMap.of(), Transformers.removeValuesThatAre(empty)
140141
.transform("foo", (Object) " "));
141142
}
143+
144+
@Test
145+
public void testNullValueHandling() {
146+
Transformer transformer = Transformers.noOp();
147+
Map<String, Object> expected = AnyMaps.create("foo", null);
148+
Map<String, Object> actual = transformer.transform(expected);
149+
Assert.assertEquals(expected, actual);
150+
}
142151

143152
}

0 commit comments

Comments
 (0)