This is an automated email from the ASF dual-hosted git repository.
enorman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-api.git
The following commit(s) were added to refs/heads/master by this push:
new 99af984 SLING-9774 Use a simpler fix that also passes the tests.
99af984 is described below
commit 99af984b5b9b3a5c6826cfdaa7076e4bd6b045e4
Author: Eric Norman <[email protected]>
AuthorDate: Mon Sep 28 05:04:18 2020 -0700
SLING-9774 Use a simpler fix that also passes the tests.
Thanks to review by Julian.
---
.../sling/api/wrappers/impl/MergingValueMap.java | 35 ++--------------------
1 file changed, 2 insertions(+), 33 deletions(-)
diff --git
a/src/main/java/org/apache/sling/api/wrappers/impl/MergingValueMap.java
b/src/main/java/org/apache/sling/api/wrappers/impl/MergingValueMap.java
index 6cd2e5f..f21ab62 100644
--- a/src/main/java/org/apache/sling/api/wrappers/impl/MergingValueMap.java
+++ b/src/main/java/org/apache/sling/api/wrappers/impl/MergingValueMap.java
@@ -25,7 +25,6 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
-import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -109,42 +108,12 @@ public class MergingValueMap implements ValueMap {
@Override
public Object get(Object key) {
return valueMaps.stream()
- .map(vm -> getOrEmpty(vm, key)) // SLING-9774
- .filter(Objects::nonNull)
+ .filter(vm -> vm.containsKey(key)) // SLING-9774
.findFirst()
- .filter(Optional::isPresent) // skip if Optional#empty
- .map(Optional::get) // dig the value out of the
Optional
+ .map(vm -> vm.get(key))
.orElse(null);
}
- /**
- * SLING-9774 - Returns an {@code Optional} describing the value in the
map value for
- * the supplied key. Special handling is supplied for an existing key that
- * resolves to a null value.
- *
- * @param vm the map to get the value from
- * @param key the key to get the value for
- * @return an {@code Optional} with a present value if the specified value
- * is non-null, otherwise if the map contains the key then an empty {@code
Optional},
- * otherwise null
- */
- private Optional<Object> getOrEmpty(ValueMap vm, Object key) {
- Optional<Object> opt = null;
- Object value = vm.get(key);
- if (value == null) {
- // check if the null value is for a real entry
- if (vm.containsKey(key)) {
- // key exists so return the empty Optional
- // instead of null
- opt = Optional.empty();
- }
- } else {
- // not null so just wrap the value
- opt = Optional.of(value);
- }
- return opt;
- }
-
@NotNull
@Override
public Set<String> keySet() {