assertEquals("FINE: {\"ts\":0,\"ph\":\"e\",\"tid\":1,\"name\":\"network connect\",\"cat\":\"net\",\"id\":\"0x1234\",\"args\":{\"msg\":\"OK\"}}", fLog.getMessages().get(6));
}
+ /**
+ * Test that null values in arguments are properly handled
+ */
+ @Test
+ public void testNullArguments() {
+ Logger logger = fLogger;
+ assertNotNull(logger);
+ TraceCompassLogUtils.traceInstant(logger, Level.INFO, "test null value", "nullvalue", null);
+ TraceCompassLogUtils.traceInstant(logger, Level.INFO, "test null key", null, "value");
+
+ fStreamHandler.flush();
+ assertEquals("INFO: {\"ts\":0,\"ph\":\"i\",\"tid\":1,\"name\":\"test null value\",\"args\":{\"nullvalue\":\"null\"}}", fLog.getMessages().get(0));
+ assertEquals("INFO: {\"ts\":0,\"ph\":\"i\",\"tid\":1,\"name\":\"test null key\",\"args\":{\"null\":\"value\"}}", fLog.getMessages().get(1));
+ }
+
}
import java.util.logging.Logger;
import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.tracecompass.common.core.NonNullUtils;
/**
* Logger helper
if (i > 0) {
appendTo.append(',');
}
- writeObject(appendTo, keyVal, NonNullUtils.checkNotNull(value));
+ writeObject(appendTo, keyVal, value);
}
}
return appendTo.append('}');
}
- private static StringBuilder writeObject(StringBuilder appendTo, Object key, Object value) {
+ private static StringBuilder writeObject(StringBuilder appendTo, Object key, @Nullable Object value) {
appendTo.append('"').append(key).append('"').append(':');
if (value instanceof Number) {
appendTo.append(value);
} else {
- appendTo.append('"').append(value).append('"');
+ appendTo.append('"').append(String.valueOf(value)).append('"');
}
return appendTo;
}