Skip to content

Commit 516610b

Browse files
committed
Make Jackson ObjectMapper initialization thread safe
1 parent 9b0326b commit 516610b

File tree

3 files changed

+20
-20
lines changed

3 files changed

+20
-20
lines changed

modules/swagger-core/src/main/java/io/swagger/v3/core/util/Json31.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,22 @@
1313

1414
public class Json31 {
1515

16-
private static ObjectMapper mapper;
17-
private static ObjectMapper converterMapper;
16+
private static final class ObjectMapperHolder {
17+
private static final ObjectMapper MAPPER = ObjectMapperFactory.createJson31();
18+
}
19+
20+
private static final class ConverterMapperHolder {
21+
private static final ObjectMapper MAPPER = ObjectMapperFactory.createJsonConverter();
22+
}
1823

1924
static Logger LOGGER = LoggerFactory.getLogger(Json31.class);
2025

2126
public static ObjectMapper mapper() {
22-
if (mapper == null) {
23-
mapper = ObjectMapperFactory.createJson31();
24-
}
25-
return mapper;
27+
return ObjectMapperHolder.MAPPER;
2628
}
2729

2830
public static ObjectMapper converterMapper() {
29-
if (converterMapper == null) {
30-
converterMapper = ObjectMapperFactory.createJsonConverter();
31-
}
32-
return converterMapper;
31+
return ConverterMapperHolder.MAPPER;
3332
}
3433

3534
public static ObjectWriter pretty() {

modules/swagger-core/src/main/java/io/swagger/v3/core/util/Yaml.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
import com.fasterxml.jackson.databind.ObjectWriter;
66

77
public class Yaml {
8-
static ObjectMapper mapper;
8+
9+
private static final class ObjectMapperHolder {
10+
private static final ObjectMapper MAPPER = ObjectMapperFactory.createYaml();
11+
}
912

1013
public static ObjectMapper mapper() {
11-
if (mapper == null) {
12-
mapper = ObjectMapperFactory.createYaml();
13-
}
14-
return mapper;
14+
return ObjectMapperHolder.MAPPER;
1515
}
1616

1717
public static ObjectWriter pretty() {

modules/swagger-core/src/main/java/io/swagger/v3/core/util/Yaml31.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,16 @@
1111
import java.util.Map;
1212

1313
public class Yaml31 {
14-
static ObjectMapper mapper;
14+
15+
private static final class ObjectMapperHolder {
16+
private static final ObjectMapper MAPPER = ObjectMapperFactory.createYaml31();
17+
}
18+
1519

1620
static Logger LOGGER = LoggerFactory.getLogger(Yaml31.class);
1721

1822
public static ObjectMapper mapper() {
19-
if (mapper == null) {
20-
mapper = ObjectMapperFactory.createYaml31();
21-
}
22-
return mapper;
23+
return ObjectMapperHolder.MAPPER;
2324
}
2425

2526
public static ObjectWriter pretty() {

0 commit comments

Comments
 (0)