diff --git a/pom.xml b/pom.xml
index 375f1e6..e54e50b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -73,6 +73,7 @@
1.50.5
1.3
2.9.1
+ 3.0.2
4.12
1.18.0
2.18.3
@@ -529,6 +530,12 @@
+
+
+ com.google.code.findbugs
+ jsr305
+ ${jsr305.version}
+
org.assertj
diff --git a/src/main/java/org/springframework/session/data/mongo/AbstractMongoSessionConverter.java b/src/main/java/org/springframework/session/data/mongo/AbstractMongoSessionConverter.java
index 5ebf40e..3d4bca9 100644
--- a/src/main/java/org/springframework/session/data/mongo/AbstractMongoSessionConverter.java
+++ b/src/main/java/org/springframework/session/data/mongo/AbstractMongoSessionConverter.java
@@ -29,6 +29,7 @@ import org.springframework.data.mongodb.core.index.Index;
import org.springframework.data.mongodb.core.index.IndexInfo;
import org.springframework.data.mongodb.core.index.IndexOperations;
import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.lang.Nullable;
import org.springframework.session.FindByIndexNameSessionRepository;
import org.springframework.session.Session;
@@ -55,6 +56,7 @@ public abstract class AbstractMongoSessionConverter implements GenericConverter
* @param indexValue value to query against
* @return built query or null if indexName is not supported
*/
+ @Nullable
protected abstract Query getQueryForIndex(String indexName, Object indexValue);
/**
@@ -95,6 +97,7 @@ public abstract class AbstractMongoSessionConverter implements GenericConverter
}
@SuppressWarnings("unchecked")
+ @Nullable
public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
if (source == null) {
diff --git a/src/main/java/org/springframework/session/data/mongo/Assert.java b/src/main/java/org/springframework/session/data/mongo/Assert.java
new file mode 100644
index 0000000..0dbfcdb
--- /dev/null
+++ b/src/main/java/org/springframework/session/data/mongo/Assert.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2019 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.session.data.mongo;
+
+import org.springframework.lang.Nullable;
+
+/**
+ * @author Greg Turnquist
+ */
+public final class Assert {
+
+ private Assert() {}
+
+ public static T requireNonNull(@Nullable T item, String message) {
+
+ if (item == null) {
+ throw new IllegalArgumentException(message);
+ }
+
+ return item;
+ }
+
+}
diff --git a/src/main/java/org/springframework/session/data/mongo/AuthenticationParser.java b/src/main/java/org/springframework/session/data/mongo/AuthenticationParser.java
index 0ef73de..3895e29 100644
--- a/src/main/java/org/springframework/session/data/mongo/AuthenticationParser.java
+++ b/src/main/java/org/springframework/session/data/mongo/AuthenticationParser.java
@@ -17,6 +17,7 @@ package org.springframework.session.data.mongo;
import org.springframework.expression.Expression;
import org.springframework.expression.spel.standard.SpelExpressionParser;
+import org.springframework.lang.Nullable;
/**
* Utility class to extract principal name from {@code Authentication} object.
@@ -38,7 +39,8 @@ final class AuthenticationParser {
* @param authentication Authentication object
* @return principal name
*/
- static String extractName(Object authentication) {
+ @Nullable
+ static String extractName(@Nullable Object authentication) {
if (authentication == null) {
return null;
diff --git a/src/main/java/org/springframework/session/data/mongo/JacksonMongoSessionConverter.java b/src/main/java/org/springframework/session/data/mongo/JacksonMongoSessionConverter.java
index 9a9d209..477ed84 100644
--- a/src/main/java/org/springframework/session/data/mongo/JacksonMongoSessionConverter.java
+++ b/src/main/java/org/springframework/session/data/mongo/JacksonMongoSessionConverter.java
@@ -26,6 +26,7 @@ import org.bson.json.JsonMode;
import org.bson.json.JsonWriterSettings;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.lang.Nullable;
import org.springframework.security.jackson2.SecurityJackson2Modules;
import org.springframework.session.FindByIndexNameSessionRepository;
import org.springframework.util.Assert;
@@ -72,6 +73,7 @@ public class JacksonMongoSessionConverter extends AbstractMongoSessionConverter
this.objectMapper = objectMapper;
}
+ @Nullable
protected Query getQueryForIndex(String indexName, Object indexValue) {
if (FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME.equals(indexName)) {
@@ -114,6 +116,7 @@ public class JacksonMongoSessionConverter extends AbstractMongoSessionConverter
}
@Override
+ @Nullable
protected MongoSession convert(Document source) {
String json = source.toJson(JsonWriterSettings.builder().outputMode(JsonMode.RELAXED).build());
diff --git a/src/main/java/org/springframework/session/data/mongo/JdkMongoSessionConverter.java b/src/main/java/org/springframework/session/data/mongo/JdkMongoSessionConverter.java
index 96be252..bbbd09b 100644
--- a/src/main/java/org/springframework/session/data/mongo/JdkMongoSessionConverter.java
+++ b/src/main/java/org/springframework/session/data/mongo/JdkMongoSessionConverter.java
@@ -29,6 +29,7 @@ import org.springframework.core.serializer.support.DeserializingConverter;
import org.springframework.core.serializer.support.SerializingConverter;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.lang.Nullable;
import org.springframework.session.FindByIndexNameSessionRepository;
import org.springframework.session.Session;
import org.springframework.util.Assert;
@@ -64,7 +65,7 @@ public class JdkMongoSessionConverter extends AbstractMongoSessionConverter {
public JdkMongoSessionConverter(Converter