-
Type: New Feature
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: 4.1.1
-
Component/s: POJO
-
None
I'm using the PojoCodecProvider to map to Kotlin data classes. When the fields of those data classes contain annotations (unrelated to MongoDB) then an exception is thrown.
Stacktrace:
java.lang.NullPointerException: null at org.bson.codecs.pojo.PojoBuilderHelper.isAssignableClass(PojoBuilderHelper.java:169) at org.bson.codecs.pojo.PojoBuilderHelper.getOrCreateMethodPropertyMetadata(PojoBuilderHelper.java:160) at org.bson.codecs.pojo.PojoBuilderHelper.configureClassModelBuilder(PojoBuilderHelper.java:94) at org.bson.codecs.pojo.ClassModelBuilder.<init>(ClassModelBuilder.java:60) at org.bson.codecs.pojo.ClassModel.builder(ClassModel.java:68) at org.bson.codecs.pojo.PojoCodecProvider.createClassModel(PojoCodecProvider.java:215) at org.bson.codecs.pojo.PojoCodecProvider.getPojoCodec(PojoCodecProvider.java:82) at org.bson.codecs.pojo.PojoCodecProvider.get(PojoCodecProvider.java:72) at org.bson.internal.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:45) at org.bson.internal.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:57) at org.bson.internal.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:39) at com.mongodb.internal.operation.Operations.createFindOperation(Operations.java:131) at com.mongodb.internal.operation.Operations.find(Operations.java:121) at com.mongodb.internal.operation.SyncOperations.find(SyncOperations.java:93) at com.mongodb.client.internal.FindIterableImpl.asReadOperation(FindIterableImpl.java:206) at com.mongodb.client.internal.MongoIterableImpl.execute(MongoIterableImpl.java:135) at com.mongodb.client.internal.MongoIterableImpl.iterator(MongoIterableImpl.java:92) at com.mongodb.client.internal.MongoIterableImpl.iterator(MongoIterableImpl.java:39) .... at java.lang.Thread.run(Thread.java:748) 2020-12-18 09:25:11.341 [nioEventLoopGroup-4-1 @call-handler#4] ERROR Application - Unhandled: GET - /restaurants org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class com.fificard.domain.Restaurant. (Coroutine boundary) ... at java.lang.Thread.run(Thread.java:748) Caused by: org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class com.fificard.domain.Restaurant. at org.bson.internal.CodecCache.getOrThrow(CodecCache.java:57) at org.bson.internal.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:64) at org.bson.internal.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:39) at com.mongodb.internal.operation.Operations.createFindOperation(Operations.java:131) at com.mongodb.internal.operation.Operations.find(Operations.java:121) at com.mongodb.internal.operation.SyncOperations.find(SyncOperations.java:93) at com.mongodb.client.internal.FindIterableImpl.asReadOperation(FindIterableImpl.java:206) ... 13 common frames omitted
It seems that it sees the annotation itself as a property to map.