Skip to content

Commit adab333

Browse files
committed
Fix for issue influxdata#117.
1 parent 4514191 commit adab333

File tree

2 files changed

+25
-3
lines changed

2 files changed

+25
-3
lines changed

src/main/java/org/influxdb/dto/Point.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,9 +286,13 @@ private StringBuilder concatenateFields() {
286286
numberFormat.setMinimumFractionDigits(1);
287287

288288
for (Entry<String, Object> field : this.fields.entrySet()) {
289-
sb.append(KEY_ESCAPER.escape(field.getKey())).append("=");
290289
loops++;
291290
Object value = field.getValue();
291+
if (value == null) {
292+
continue;
293+
}
294+
295+
sb.append(KEY_ESCAPER.escape(field.getKey())).append("=");
292296
if (value instanceof String) {
293297
String stringValue = (String) value;
294298
sb.append("\"").append(FIELD_ESCAPER.escape(stringValue)).append("\"");
@@ -304,6 +308,7 @@ private StringBuilder concatenateFields() {
304308
sb.append(",");
305309
}
306310
}
311+
307312
return sb;
308313
}
309314

src/test/java/org/influxdb/dto/PointTest.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
package org.influxdb.dto;
22

3-
import org.testng.annotations.Test;
4-
import static org.assertj.core.api.Assertions.*;
3+
import static org.assertj.core.api.Assertions.assertThat;
54

65
import java.math.BigDecimal;
76
import java.math.BigInteger;
87
import java.util.concurrent.TimeUnit;
98
import java.util.concurrent.atomic.AtomicInteger;
109
import java.util.concurrent.atomic.AtomicLong;
1110

11+
import org.testng.annotations.Test;
12+
1213
/**
1314
* Test for the Point DTO.
1415
*
@@ -156,4 +157,20 @@ public void testEscapingOfKeysAndValues() {
156157
assertThat(point.lineProtocol()).asString().isEqualTo("test,foo=bar\\=baz a=1.0 1");
157158
}
158159

160+
/**
161+
* Test for issue #117.
162+
*/
163+
@Test
164+
public void testIgnoreNullPointerValue() {
165+
// Test omission of null values
166+
Point.Builder pointBuilder = Point.measurement("nulltest").time(1, TimeUnit.NANOSECONDS).tag("foo", "bar");
167+
168+
pointBuilder.field("field1", "value1");
169+
pointBuilder.field("field2", null);
170+
pointBuilder.field("field3", (Integer) 1);
171+
172+
Point point = pointBuilder.build();
173+
174+
assertThat(point.lineProtocol()).asString().isEqualTo("nulltest,foo=bar field1=\"value1\",field3=1.0 1");
175+
}
159176
}

0 commit comments

Comments
 (0)