ConversionFailedException while using MongoDB session #184
Description
We are noticing a lot of ConversionFailedException for MongoDB Sessions in our logs. Following is the sample logs for reference. All the logs are similar with different UUID.
Message:
Failed to convert from type [java.lang.String] to type [org.bson.types.ObjectId] for value '2359e11c-3479-49b7-b531-cd84123ad006'; nested exception is java.lang.IllegalArgumentException: invalid hexadecimal representation of an ObjectId: [2359e11c-3479-49b7-b531-cd84123ad006]
Stacktrace:
org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:47)
org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:191)
org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:174)
org.springframework.data.mongodb.core.convert.MongoConverter.convertId(MongoConverter.java:146)
org.springframework.data.mongodb.core.convert.QueryMapper.convertId(QueryMapper.java:629)
org.springframework.data.mongodb.core.convert.QueryMapper.getMappedValue(QueryMapper.java:377)
org.springframework.data.mongodb.core.convert.QueryMapper.getMappedObjectForField(QueryMapper.java:240)
org.springframework.data.mongodb.core.convert.QueryMapper.getMappedObject(QueryMapper.java:143)
org.springframework.data.mongodb.core.QueryOperations$QueryContext.getMappedQuery(QueryOperations.java:255)
org.springframework.data.mongodb.core.QueryOperations$UpdateContext.getMappedQuery(QueryOperations.java:646)
org.springframework.data.mongodb.core.MongoTemplate.lambda$
org.springframework.data.mongodb.core.MongoTemplate$$Lambda$.doInCollection
org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:566)
org.springframework.data.mongodb.core.MongoTemplate.saveDocument(MongoTemplate.java:1485)
org.springframework.data.mongodb.core.MongoTemplate.doSave(MongoTemplate.java:1421)
org.springframework.data.mongodb.core.MongoTemplate.save(MongoTemplate.java:1363)
org.springframework.session.data.mongo.MongoIndexedSessionRepository.save(MongoIndexedSessionRepository.java:89)
org.springframework.session.data.mongo.MongoIndexedSessionRepository.save(MongoIndexedSessionRepository.java:50)
org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.commitSession(SessionRepositoryFilter.java:225)
org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.access$
org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryResponseWrapper.onResponseCommitted(SessionRepositoryFilter.java:179)
org.springframework.session.web.http.OnCommittedResponseWrapper.doOnResponseCommitted(OnCommittedResponseWrapper.java:227)
org.springframework.session.web.http.OnCommittedResponseWrapper.sendRedirect(OnCommittedResponseWrapper.java:129)
javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
org.springframework.security.web.firewall.FirewalledResponse.sendRedirect(FirewalledResponse.java:43)
javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
org.springframework.security.web.util.OnCommittedResponseWrapper.sendRedirect(OnCommittedResponseWrapper.java:135)
javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
org.springframework.security.web.util.OnCommittedResponseWrapper.sendRedirect(OnCommittedResponseWrapper.java:135)
javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
org.springframework.security.web.firewall.FirewalledResponse.sendRedirect(FirewalledResponse.java:43)
javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
org.springframework.security.web.firewall.FirewalledResponse.sendRedirect(FirewalledResponse.java:43)
jdk.internal.reflect.GeneratedMethodAccessor.invoke
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke
java.lang.reflect.Method.invoke
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
We are using spring-session-data-mongodb (2.3.0 RELEASE) with spring-boot-starter-data-mongodb (2.3.2 RELEASE). Spring boot 2.3.2 RELEASE with Hoxton.SR5 cloud version.
JVM version (e.g. java -version
)
Java 11