Skip to content

Commit 8583890

Browse files
committed
[#noissue] Optimize TagUtils
1 parent b3ad71a commit 8583890

File tree

2 files changed

+20
-18
lines changed
  • inspector-module/inspector-commons/src/main/java/com/navercorp/pinpoint/common/dao/pinot
  • metric-module/metric-commons/src/main/java/com/navercorp/pinpoint/metric/common/util

2 files changed

+20
-18
lines changed

inspector-module/inspector-commons/src/main/java/com/navercorp/pinpoint/common/dao/pinot/MultiValueTagTypeHandler.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,12 @@
1717
package com.navercorp.pinpoint.common.dao.pinot;
1818

1919
import com.fasterxml.jackson.core.JsonProcessingException;
20-
import com.fasterxml.jackson.databind.JavaType;
2120
import com.fasterxml.jackson.databind.ObjectMapper;
21+
import com.fasterxml.jackson.databind.ObjectReader;
2222
import com.navercorp.pinpoint.common.server.util.json.Jackson;
2323
import com.navercorp.pinpoint.metric.common.model.Tag;
2424
import com.navercorp.pinpoint.metric.common.util.TagUtils;
25+
import org.apache.commons.lang3.StringUtils;
2526
import org.apache.ibatis.type.JdbcType;
2627
import org.apache.ibatis.type.TypeHandler;
2728

@@ -30,15 +31,13 @@
3031
import java.sql.ResultSet;
3132
import java.sql.SQLException;
3233
import java.util.List;
33-
import java.util.stream.Collectors;
3434

3535
/**
3636
* @author minwoo.jung
3737
*/
3838
public class MultiValueTagTypeHandler implements TypeHandler<List<Tag>> {
3939

40-
private final static ObjectMapper MAPPER = getMapper();
41-
private final static JavaType LISTSTRING_JavaType = MAPPER.getTypeFactory().constructCollectionType(List.class, String.class);
40+
private final static ObjectReader READER = getMapper().readerForListOf(String.class);
4241

4342
private static ObjectMapper getMapper() {
4443
return Jackson.newBuilder()
@@ -52,12 +51,13 @@ public void setParameter(PreparedStatement ps, int i, List<Tag> parameter, JdbcT
5251

5352
@Override
5453
public List<Tag> getResult(ResultSet rs, String columnName) throws SQLException {
55-
String json = rs.getString(columnName);
54+
final String json = rs.getString(columnName);
55+
if (StringUtils.isEmpty(json)) {
56+
return List.of();
57+
}
5658
try {
57-
List<String> tags = MAPPER.readValue(json, LISTSTRING_JavaType);
58-
return tags.stream()
59-
.map(TagUtils::parseTag)
60-
.collect(Collectors.toList());
59+
List<String> tags = READER.readValue(json);
60+
return TagUtils.parseTags(tags);
6161
} catch (JsonProcessingException e) {
6262
throw new SQLException(e);
6363
}

metric-module/metric-commons/src/main/java/com/navercorp/pinpoint/metric/common/util/TagUtils.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
import java.util.ArrayList;
2525
import java.util.List;
2626
import java.util.Objects;
27+
import java.util.StringJoiner;
2728
import java.util.regex.Pattern;
28-
import java.util.stream.Collectors;
2929

3030
/**
3131
* @author Hyunjoon Cho
@@ -40,10 +40,10 @@ private TagUtils() {
4040

4141
public static List<Tag> parseTags(List<String> tags) {
4242
if (CollectionUtils.isEmpty(tags)) {
43-
return new ArrayList<>();
43+
return List.of();
4444
}
4545

46-
List<Tag> tagList = new ArrayList<>();
46+
List<Tag> tagList = new ArrayList<>(tags.size());
4747
for (String tagString : tags) {
4848
Tag tag = parseTag(tagString);
4949
tagList.add(tag);
@@ -53,12 +53,12 @@ public static List<Tag> parseTags(List<String> tags) {
5353

5454
public static List<Tag> parseTags(String tagStrings) {
5555
if (tagStrings == null || tagStrings.contains("null")) {
56-
return new ArrayList<>();
56+
return List.of();
5757
}
5858

59-
List<Tag> tagList = new ArrayList<>();
60-
6159
String[] tagStrArray = parseMultiValueFieldList(tagStrings);
60+
61+
List<Tag> tagList = new ArrayList<>(tagStrArray.length);
6262
for (String tagString : tagStrArray) {
6363
Tag tag = parseTag(tagString);
6464
tagList.add(tag);
@@ -94,8 +94,10 @@ public static String toTagString(String jsonTagString) {
9494
}
9595

9696
public static String toTagString(List<Tag> tagList) {
97-
return tagList.stream()
98-
.map(Tag::toString)
99-
.collect(Collectors.joining(","));
97+
StringJoiner joiner = new StringJoiner(",");
98+
for (Tag tag : tagList) {
99+
joiner.add(tag.toString());
100+
}
101+
return joiner.toString();
100102
}
101103
}

0 commit comments

Comments
 (0)