From 5ed8993e50f29ad2fe1cc443c2082ca2189553ea Mon Sep 17 00:00:00 2001 From: Andre Dietisheim Date: Fri, 3 Sep 2021 12:11:45 +0200 Subject: [PATCH] fix: ignore & warn properties using null key/value (#23) Signed-off-by: Andre Dietisheim --- .../core/service/TelemetryMessageBuilder.java | 10 ++++++++- .../service/TelemetryMessageBuilderTest.java | 22 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/redhat/devtools/intellij/telemetry/core/service/TelemetryMessageBuilder.java b/src/main/java/com/redhat/devtools/intellij/telemetry/core/service/TelemetryMessageBuilder.java index acea5184..b5039eac 100644 --- a/src/main/java/com/redhat/devtools/intellij/telemetry/core/service/TelemetryMessageBuilder.java +++ b/src/main/java/com/redhat/devtools/intellij/telemetry/core/service/TelemetryMessageBuilder.java @@ -13,6 +13,7 @@ import com.intellij.ide.AppLifecycleListener; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.components.ServiceManager; +import com.intellij.openapi.diagnostic.Logger; import com.intellij.util.messages.MessageBusConnection; import com.redhat.devtools.intellij.telemetry.core.ITelemetryService; import com.redhat.devtools.intellij.telemetry.core.util.TimeUtils; @@ -31,6 +32,8 @@ public class TelemetryMessageBuilder { + private static final Logger LOGGER = Logger.getInstance(TelemetryMessageBuilder.class); + private final ServiceFacade service; public TelemetryMessageBuilder(ClassLoader classLoader) { @@ -206,7 +209,12 @@ Type getType() { } public T property(String key, String value) { - properties.put(key, value); + if (key == null + || value == null) { + LOGGER.warn("Ignored property with key: " + key + " value: " + value); + } else { + properties.put(key, value); + } return (T) this; } diff --git a/src/test/java/com/redhat/devtools/intellij/telemetry/core/service/TelemetryMessageBuilderTest.java b/src/test/java/com/redhat/devtools/intellij/telemetry/core/service/TelemetryMessageBuilderTest.java index 512fba8a..3ff8b4f4 100644 --- a/src/test/java/com/redhat/devtools/intellij/telemetry/core/service/TelemetryMessageBuilderTest.java +++ b/src/test/java/com/redhat/devtools/intellij/telemetry/core/service/TelemetryMessageBuilderTest.java @@ -79,6 +79,28 @@ public void property_should_add_property_with_given_key_and_name() { assertThat(message.getProperty(key)).isEqualTo(value); } + @Test + public void property_should_ignore_property_with_null_key() { + // given + ActionMessage message = builder.action("smurfette"); + int beforeAdding = message.properties().size(); + // when + message.property(null, "papa smurf"); + // then + assertThat(message.properties().size()).isEqualTo(beforeAdding); + } + + @Test + public void property_should_ignore_property_with_null_value() { + // given + ActionMessage message = builder.action("smurfette"); + int beforeAdding = message.properties().size(); + // when + message.property("likes", null); + // then + assertThat(message.properties().size()).isEqualTo(beforeAdding); + } + @Test public void send_should_send_message_via_service_facade() { // given