diff --git a/graylog2-server/pom.xml b/graylog2-server/pom.xml
index 73d829d81e6d3..8c2abaa392735 100644
--- a/graylog2-server/pom.xml
+++ b/graylog2-server/pom.xml
@@ -181,8 +181,8 @@
com.fasterxml.jackson.module
- jackson-module-scala_2.13
- 2.9.10
+ jackson-module-scala_3
+ 2.13.4
com.fasterxml.jackson.jaxrs
diff --git a/graylog2-server/src/main/java/org/graylog/plugins/beats/Beats2Codec.java b/graylog2-server/src/main/java/org/graylog/plugins/beats/Beats2Codec.java
index 9b3c88e92f3ba..a97d83b11d8c3 100644
--- a/graylog2-server/src/main/java/org/graylog/plugins/beats/Beats2Codec.java
+++ b/graylog2-server/src/main/java/org/graylog/plugins/beats/Beats2Codec.java
@@ -70,7 +70,7 @@ public Message decode(@Nonnull RawMessage rawMessage) {
final JsonNode event;
try {
event = objectMapper.readTree(payload);
- if (event == null) {
+ if (event == null || event.isMissingNode()) {
throw new IOException("null result");
}
} catch (IOException e) {
diff --git a/graylog2-server/src/main/java/org/graylog2/shared/bindings/providers/ObjectMapperProvider.java b/graylog2-server/src/main/java/org/graylog2/shared/bindings/providers/ObjectMapperProvider.java
index d244e582fb59a..3991ff28dfe41 100644
--- a/graylog2-server/src/main/java/org/graylog2/shared/bindings/providers/ObjectMapperProvider.java
+++ b/graylog2-server/src/main/java/org/graylog2/shared/bindings/providers/ObjectMapperProvider.java
@@ -25,6 +25,7 @@
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.fasterxml.jackson.databind.type.TypeFactory;
+import com.fasterxml.jackson.databind.util.StdDateFormat;
import com.fasterxml.jackson.datatype.guava.GuavaModule;
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
import com.fasterxml.jackson.datatype.joda.JodaModule;
@@ -80,7 +81,7 @@ public class ObjectMapperProvider implements Provider {
private final LoadingCache mapperByTimeZone = CacheBuilder.newBuilder()
.maximumSize(DateTimeZone.getAvailableIDs().size())
.build(
- new CacheLoader() {
+ new CacheLoader<>() {
@Override
public ObjectMapper load(@Nonnull DateTimeZone key) {
return objectMapper.copy().setTimeZone(key.toTimeZone());
@@ -114,6 +115,7 @@ public ObjectMapperProvider(@GraylogClassLoader final ClassLoader classLoader,
.setPropertyNamingStrategy(new PropertyNamingStrategy.SnakeCaseStrategy())
.setSubtypeResolver(subtypeResolver)
.setTypeFactory(typeFactory)
+ .setDateFormat(new StdDateFormat().withColonInTimeZone(false))
.registerModule(new GuavaModule())
.registerModule(new JodaModule())
.registerModule(new Jdk8Module())
diff --git a/graylog2-server/src/test/java/org/graylog/events/contentpack/facade/EventDefinitionFacadeTest.java b/graylog2-server/src/test/java/org/graylog/events/contentpack/facade/EventDefinitionFacadeTest.java
index aa99f2c324b2b..3c3ff47cf65e9 100644
--- a/graylog2-server/src/test/java/org/graylog/events/contentpack/facade/EventDefinitionFacadeTest.java
+++ b/graylog2-server/src/test/java/org/graylog/events/contentpack/facade/EventDefinitionFacadeTest.java
@@ -100,14 +100,14 @@ public class EventDefinitionFacadeTest {
@Rule
public final MongoDBInstance mongodb = MongoDBInstance.createForClass();
- private ObjectMapper objectMapper = new ObjectMapperProvider().get();
+ private ObjectMapper objectMapper;
private EventDefinitionFacade facade;
@Rule
public final MockitoRule mockitoRule = MockitoJUnit.rule();
- private MongoJackObjectMapperProvider mapperProvider = new MongoJackObjectMapperProvider(objectMapper);
+ private MongoJackObjectMapperProvider mapperProvider;
@Mock
private DBEventProcessorStateService stateService;
@@ -129,11 +129,14 @@ public class EventDefinitionFacadeTest {
@Before
@SuppressForbidden("Using Executors.newSingleThreadExecutor() is okay in tests")
public void setUp() throws Exception {
+ objectMapper = new ObjectMapperProvider().get();
objectMapper.registerSubtypes(
AggregationEventProcessorConfig.class,
PersistToStreamsStorageHandler.Config.class,
TemplateFieldValueProvider.Config.class,
AggregationEventProcessorConfigEntity.class);
+ mapperProvider = new MongoJackObjectMapperProvider(objectMapper);
+
stateService = mock(DBEventProcessorStateService.class);
jobDefinitionService = mock(DBJobDefinitionService.class);
jobTriggerService = mock(DBJobTriggerService.class);
diff --git a/graylog2-server/src/test/java/org/graylog/events/contentpack/facade/NotificationFacadeTest.java b/graylog2-server/src/test/java/org/graylog/events/contentpack/facade/NotificationFacadeTest.java
index 197762c4eeaea..f0c0ca7c2392d 100644
--- a/graylog2-server/src/test/java/org/graylog/events/contentpack/facade/NotificationFacadeTest.java
+++ b/graylog2-server/src/test/java/org/graylog/events/contentpack/facade/NotificationFacadeTest.java
@@ -73,7 +73,7 @@ public class NotificationFacadeTest {
@Rule
public final MongoDBInstance mongodb = MongoDBInstance.createForClass();
- private ObjectMapper objectMapper = new ObjectMapperProvider().get();
+ private ObjectMapper objectMapper;
private NotificationFacade facade;
@@ -98,17 +98,20 @@ public class NotificationFacadeTest {
@Rule
public final MockitoRule mockitoRule = MockitoJUnit.rule();
- private MongoJackObjectMapperProvider mapperProvider = new MongoJackObjectMapperProvider(objectMapper);
+ private MongoJackObjectMapperProvider mapperProvider;
@Before
@SuppressForbidden("Using Executors.newSingleThreadExecutor() is okay in tests")
public void setUp() throws Exception {
+ objectMapper = new ObjectMapperProvider().get();
objectMapper.registerSubtypes(
EmailEventNotificationConfig.class,
EmailEventNotificationConfigEntity.class,
HttpEventNotificationConfigEntity.class,
HTTPEventNotificationConfig.class
);
+ mapperProvider = new MongoJackObjectMapperProvider(objectMapper);
+
jobDefinitionService = mock(DBJobDefinitionService.class);
stateService = mock(DBEventProcessorStateService.class);
eventDefinitionService = new DBEventDefinitionService(mongodb.mongoConnection(), mapperProvider, stateService, mock(EntityOwnershipService.class), null);
diff --git a/graylog2-server/src/test/java/org/graylog/plugins/views/migrations/V20200204122000_MigrateUntypedViewsToDashboardsTest.java b/graylog2-server/src/test/java/org/graylog/plugins/views/migrations/V20200204122000_MigrateUntypedViewsToDashboardsTest.java
index b14aff42d7ad6..a832627783da3 100644
--- a/graylog2-server/src/test/java/org/graylog/plugins/views/migrations/V20200204122000_MigrateUntypedViewsToDashboardsTest.java
+++ b/graylog2-server/src/test/java/org/graylog/plugins/views/migrations/V20200204122000_MigrateUntypedViewsToDashboardsTest.java
@@ -18,6 +18,7 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.util.StdDateFormat;
import com.mongodb.BasicDBObject;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
@@ -73,7 +74,8 @@ public class V20200204122000_MigrateUntypedViewsToDashboardsTest {
@Mock
private ClusterConfigService clusterConfigService;
- private final ObjectMapper objectMapper = new ObjectMapperProvider().get();
+ private final ObjectMapper objectMapper = new ObjectMapperProvider().get()
+ .setDateFormat(new StdDateFormat().withColonInTimeZone(false));
private Migration migration;
private MongoCollection viewsCollection;
diff --git a/graylog2-server/src/test/java/org/graylog2/jackson/MongoJodaDateTimeSerializerTest.java b/graylog2-server/src/test/java/org/graylog2/jackson/MongoJodaDateTimeSerializerTest.java
index 107b871fbc6f5..a1f3b17e3b97e 100644
--- a/graylog2-server/src/test/java/org/graylog2/jackson/MongoJodaDateTimeSerializerTest.java
+++ b/graylog2-server/src/test/java/org/graylog2/jackson/MongoJodaDateTimeSerializerTest.java
@@ -18,6 +18,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.util.StdDateFormat;
import org.graylog2.shared.bindings.providers.ObjectMapperProvider;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
@@ -26,7 +27,8 @@
import static org.assertj.core.api.Assertions.assertThat;
public class MongoJodaDateTimeSerializerTest {
- private final ObjectMapper objectMapper = new ObjectMapperProvider().get();
+ private final ObjectMapper objectMapper = new ObjectMapperProvider().get()
+ .setDateFormat(new StdDateFormat().withColonInTimeZone(false));
@Test
public void serializeZonedDateTime() throws Exception {
@@ -54,4 +56,4 @@ public TestBean(DateTime dateTime) {
this.dateTime = dateTime;
}
}
-}
\ No newline at end of file
+}
diff --git a/graylog2-server/src/test/java/org/graylog2/jackson/MongoZonedDateTimeSerializerTest.java b/graylog2-server/src/test/java/org/graylog2/jackson/MongoZonedDateTimeSerializerTest.java
index 69d0c55c8f88d..607f61549f6d2 100644
--- a/graylog2-server/src/test/java/org/graylog2/jackson/MongoZonedDateTimeSerializerTest.java
+++ b/graylog2-server/src/test/java/org/graylog2/jackson/MongoZonedDateTimeSerializerTest.java
@@ -18,6 +18,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.util.StdDateFormat;
import org.graylog2.shared.bindings.providers.ObjectMapperProvider;
import org.junit.Test;
@@ -27,7 +28,8 @@
import static org.assertj.core.api.Assertions.assertThat;
public class MongoZonedDateTimeSerializerTest {
- private final ObjectMapper objectMapper = new ObjectMapperProvider().get();
+ private final ObjectMapper objectMapper = new ObjectMapperProvider().get()
+ .setDateFormat(new StdDateFormat().withColonInTimeZone(false));
@Test
public void serializeZonedDateTime() throws Exception {
@@ -55,4 +57,4 @@ public TestBean(ZonedDateTime dateTime) {
this.dateTime = dateTime;
}
}
-}
\ No newline at end of file
+}
diff --git a/graylog2-server/src/test/java/org/graylog2/plugin/MessageSummaryTest.java b/graylog2-server/src/test/java/org/graylog2/plugin/MessageSummaryTest.java
index f0a2e8ebd464b..6ed59e3ffed13 100644
--- a/graylog2-server/src/test/java/org/graylog2/plugin/MessageSummaryTest.java
+++ b/graylog2-server/src/test/java/org/graylog2/plugin/MessageSummaryTest.java
@@ -18,6 +18,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.type.MapType;
+import com.fasterxml.jackson.datatype.joda.JodaModule;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Sets;
@@ -27,7 +28,6 @@
import org.junit.Test;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@@ -91,7 +91,7 @@ public void testGetFields() throws Exception {
@Test
public void testJSONSerialization() throws Exception {
- final ObjectMapper mapper = new ObjectMapper();
+ final ObjectMapper mapper = new ObjectMapper().registerModule(new JodaModule());
final MapType valueType = mapper.getTypeFactory().constructMapType(HashMap.class, String.class, Object.class);
final Map map = mapper.readValue(mapper.writeValueAsBytes(messageSummary), valueType);
diff --git a/pom.xml b/pom.xml
index 26055dc4358f8..15d9ac80b09f2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -117,7 +117,7 @@
2.1.12
6.1.2.Final
2.6.1
- 2.9.10.20200411
+ 2.13.4
0.13.0
0.9.0
1.3.2