diff options
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/result/FeatureData.java | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/result/FeatureData.java b/container-search/src/main/java/com/yahoo/search/result/FeatureData.java index f0637473ef5..fd41d4ee10c 100644 --- a/container-search/src/main/java/com/yahoo/search/result/FeatureData.java +++ b/container-search/src/main/java/com/yahoo/search/result/FeatureData.java @@ -74,12 +74,15 @@ public class FeatureData implements Inspectable, JsonProducer { * (that is, if it is a tensor with nonzero rank) */ public Double getDouble(String featureName) { - if (decodedDoubles != null && decodedDoubles.containsKey(featureName)) - return decodedDoubles.get(featureName); - Double value = decodeDouble(featureName); if (decodedDoubles == null) decodedDoubles = new HashMap<>(); - decodedDoubles.put(featureName, value); + + Double value = decodedDoubles.get(featureName); + if (value != null) return value; + + value = decodeDouble(featureName); + if (value != null) + decodedDoubles.put(featureName, value); return value; } @@ -99,12 +102,15 @@ public class FeatureData implements Inspectable, JsonProducer { * This will return any feature value: Scalars are returned as a rank 0 tensor. */ public Tensor getTensor(String featureName) { - if (decodedTensors != null && decodedTensors.containsKey(featureName)) - return decodedTensors.get(featureName); - Tensor value = decodeTensor(featureName); if (decodedTensors == null) decodedTensors = new HashMap<>(); - decodedTensors.put(featureName, value); + + Tensor value = decodedTensors.get(featureName); + if (value != null) return value; + + value = decodeTensor(featureName); + if (value != null) + decodedTensors.put(featureName, value); return value; } |