From 787bd4e21bba110ff5bf4b371c8baddd08db3059 Mon Sep 17 00:00:00 2001 From: Jesse White Date: Thu, 2 Jun 2016 10:11:48 -0400 Subject: [PATCH] Use nulls instead of Optionals to avoid NPEs after deserialization. --- .../cassandra/search/ResourceMetadata.java | 37 ++++++++----------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/cassandra/search/src/main/java/org/opennms/newts/cassandra/search/ResourceMetadata.java b/cassandra/search/src/main/java/org/opennms/newts/cassandra/search/ResourceMetadata.java index 36e9c311..2da746e1 100644 --- a/cassandra/search/src/main/java/org/opennms/newts/cassandra/search/ResourceMetadata.java +++ b/cassandra/search/src/main/java/org/opennms/newts/cassandra/search/ResourceMetadata.java @@ -16,47 +16,43 @@ package org.opennms.newts.cassandra.search; -import static com.google.common.base.Preconditions.checkNotNull; - import java.io.Serializable; import java.util.Map; import java.util.Set; import com.codahale.metrics.Meter; -import com.google.common.base.Optional; import com.google.common.collect.Maps; import com.google.common.collect.Sets; - public class ResourceMetadata implements Serializable { private static final long serialVersionUID = 2103401685689076369L; private final Set m_metrics = Sets.newConcurrentHashSet(); private final Map m_attributes = Maps.newConcurrentMap(); - private final transient Optional m_metricReqs; - private final transient Optional m_attributeReqs; - private final transient Optional m_metricMisses; - private final transient Optional m_attributeMisses; + private final transient Meter m_metricReqs; + private final transient Meter m_attributeReqs; + private final transient Meter m_metricMisses; + private final transient Meter m_attributeMisses; public ResourceMetadata(Meter metricReqs, Meter attributeReqs, Meter metricMisses, Meter attributeMisses) { - m_metricReqs = Optional.of(checkNotNull(metricReqs, "metricsReqs argument")); - m_attributeReqs = Optional.of(checkNotNull(attributeReqs, "attributesReqs argument")); - m_metricMisses = Optional.of(checkNotNull(metricMisses, "metricsMisses argument")); - m_attributeMisses = Optional.of(checkNotNull(attributeMisses, "attributesMisses argument")); + m_metricReqs = metricReqs; + m_attributeReqs = attributeReqs; + m_metricMisses = metricMisses; + m_attributeMisses = attributeMisses; } public ResourceMetadata() { - m_metricReqs = Optional.absent(); - m_attributeReqs = Optional.absent(); - m_metricMisses = Optional.absent(); - m_attributeMisses = Optional.absent(); + m_metricReqs = null; + m_attributeReqs = null; + m_metricMisses = null; + m_attributeMisses = null; } public boolean containsMetric(String metric) { - if (m_metricReqs.isPresent()) m_metricReqs.get().mark(); + if (m_metricReqs != null) m_metricReqs.mark(); boolean contains = m_metrics.contains(metric); - if ((!contains) && m_metricMisses.isPresent()) m_metricMisses.get().mark(); + if ((!contains) && m_metricMisses != null) m_metricMisses.mark(); return contains; } @@ -66,9 +62,9 @@ public ResourceMetadata putMetric(String metric) { } public boolean containsAttribute(String key, String value) { - if (m_attributeReqs.isPresent()) m_attributeReqs.get().mark(); + if (m_attributeReqs != null) m_attributeReqs.mark(); boolean contains = m_attributes.containsKey(key) && m_attributes.get(key).equals(value); - if ((!contains) && m_attributeMisses.isPresent()) m_attributeMisses.get().mark(); + if ((!contains) && m_attributeMisses != null) m_attributeMisses.mark(); return contains; } @@ -117,5 +113,4 @@ public boolean equals(Object obj) { else if (!m_metrics.equals(other.m_metrics)) return false; return true; } - }