Skip to content

Commit 22407a5

Browse files
committed
add escaping for backslashes, fixes influxdata#718
1 parent dc1d442 commit 22407a5

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

client/src/main/java/com/influxdb/client/write/Point.java

+3
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,9 @@ private void escapeKey(@Nonnull final StringBuilder sb, @Nonnull final String ke
442442
private void escapeKey(@Nonnull final StringBuilder sb, @Nonnull final String key, final boolean escapeEqual) {
443443
for (int i = 0; i < key.length(); i++) {
444444
switch (key.charAt(i)) {
445+
case '\\':
446+
sb.append("\\\\");
447+
continue;
445448
case '\n':
446449
sb.append("\\n");
447450
continue;

client/src/test/java/com/influxdb/client/write/PointTest.java

+10
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,16 @@ void fieldEscape() {
182182
Assertions.assertThat(point.toLineProtocol()).isEqualTo("h2o,location=europe level=\"string esc\\\"ape value\"");
183183
}
184184

185+
@Test
186+
void tagEscape() {
187+
Point point = Point.measurement("h2o")
188+
.addTag("location", "\\")
189+
.addTag("zone", "europe")
190+
.addField("level", "dummy value");
191+
192+
Assertions.assertThat(point.toLineProtocol()).isEqualTo("h2o,location=\\\\,zone=europe level=\"dummy value\"");
193+
}
194+
185195
@Test
186196
void time() {
187197

0 commit comments

Comments
 (0)