Summary
Please provide a clear and concise description of the bug.
I got few fields with their getters/setters in my POJO class. I put @BsonIgnore on them. But when trying to save the POJO to my collection. It gives me an error, that clearly says that the PojoCodec is trying to serialize the properties that are annotated with @BsonIgnore. I don't want to bson touch or save them.
My code:
public class Location {
|
@BsonIgnore
|
private Reference<World> world;
|
|
private String worldName;
|
private double x;
|
private double y;
|
private double z;
|
private float pitch;
|
private float yaw;
|
|
@BsonCreator
|
public Location(@BsonProperty("worldName") String worldName,
|
@BsonProperty("x") double x,
|
@BsonProperty("y") double y,
|
@BsonProperty("z") double z,
|
@BsonProperty("yaw") float yaw,
|
@BsonProperty("pitch") float pitch)
|
this.worldName = worldName;
|
this.x = x;
|
this.y = y;
|
this.z = z;
|
this.pitch = pitch;
|
this.yaw = yaw;
|
setWorld(findWorldByName());
|
}
|
|
@BsonIgnore
|
public void setWorld(Reference<World> world) {
|
//....
|
}
|
|
@BsonIgnore
|
public Reference<World> getWorld() {
|
//...
|
}
|
|
// other setters and getters...
|
}
|
Error:
_[16:09:20] [Server thread/WARN]: [org.bson.codecs.pojo] Cannot use 'CraftWorld' with the PojoCodec.
org.bson.codecs.configuration.CodecConfigurationException: Property 'ticksPerAmbientSpawns' in CraftWorld, has differing data types: TypeData{type=Integer} and TypeData{type=Long}.
at org.bson.codecs.pojo.ClassModelBuilder.validatePropertyModels(ClassModelBuilder.java:324) ~[bson-4.11.0.jar:?]
at org.bson.codecs.pojo.ClassModelBuilder.build(ClassModelBuilder.java:293) ~[bson-4.11.0.jar:?]
at org.bson.codecs.pojo.PojoCodecProvider.createClassModel(PojoCodecProvider.java:226) ~[bson-4.11.0.jar:?]
at org.bson.codecs.pojo.PojoCodecProvider.createCodec(PojoCodecProvider.java:82) ~[bson-4.11.0.jar:?]
at org.bson.codecs.pojo.PojoCodecProvider.get(PojoCodecProvider.java:72) ~[bson-4.11.0.jar:?]
at org.bson.codecs.configuration.CodecProvider.get(CodecProvider.java:70) ~[bson-4.11.0.jar:?]
at org.bson.internal.ProvidersCodecRegistry.getFromCodecProvider(ProvidersCodecRegistry.java:95) ~[bson-4.11.0.jar:?]
at org.bson.internal.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:70) ~[bson-4.11.0.jar:?]
at org.bson.internal.ProvidersCodecRegistry.getFromCodecProvider(ProvidersCodecRegistry.java:95) ~[bson-4.11.0.jar:?]
at org.bson.internal.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:70) ~[bson-4.11.0.jar:?]
at org.bson.internal.ProvidersCodecRegistry.getFromCodecProvider(ProvidersCodecRegistry.java:95) ~[bson-4.11.0.jar:?]
at org.bson.codecs.configuration.OverridableUuidRepresentationCodecProvider.get(OverridableUuidRepresentationCodecProvider.java:47) ~[bson-4.11.0.jar:?]
at org.bson.internal.ProvidersCodecRegistry.getFromCodecProvider(ProvidersCodecRegistry.java:95) ~[bson-4.11.0.jar:?]
at org.bson.internal.ProvidersCodecRegistry.lambda$get$0(ProvidersCodecRegistry.java:82) ~[bson-4.11.0.jar:?]
at java.util.Optional.orElseGet(Optional.java:364) ~[?:?]
at org.bson.internal.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:80) ~[bson-4.11.0.jar:?]
at org.bson.internal.ChildCodecRegistry.get(ChildCodecRegistry.java:68) ~[bson-4.11.0.jar:?]
at org.bson.codecs.pojo.PojoCodecImpl.encode(PojoCodecImpl.java:92) ~[bson-4.11.0.jar:?]
at org.bson.codecs.pojo.LazyPropertyModelCodec.encode(LazyPropertyModelCodec.java:57) ~[bson-4.11.0.jar:?]
at org.bson.codecs.EncoderContext.encodeWithChildContext(EncoderContext.java:91) ~[bson-4.11.0.jar:?]
at org.bson.codecs.pojo.PojoCodecImpl.encodeValue(PojoCodecImpl.java:167) ~[bson-4.11.0.jar:?]
at org.bson.codecs.pojo.PojoCodecImpl.encodeProperty(PojoCodecImpl.java:146) ~[bson-4.11.0.jar:?]
at org.bson.codecs.pojo.PojoCodecImpl.encode(PojoCodecImpl.java:88) ~[bson-4.11.0.jar:?]
at org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:63) ~[bson-4.11.0.jar:?]
at org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:29) ~[bson-4.11.0.jar:?]
at com.mongodb.internal.connection.SplittablePayload$WriteRequestEncoder.encode(SplittablePayload.java:216) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.connection.SplittablePayload$WriteRequestEncoder.encode(SplittablePayload.java:182) ~[mongodb-driver-core-4.11.0.jar:?]
at org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:63) ~[bson-4.11.0.jar:?]
at org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:29) ~[bson-4.11.0.jar:?]
at com.mongodb.internal.connection.BsonWriterHelper.writeDocument(BsonWriterHelper.java:77) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.connection.BsonWriterHelper.writePayload(BsonWriterHelper.java:59) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.connection.CommandMessage.encodeMessageBodyWithMetadata(CommandMessage.java:162) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.connection.RequestMessage.encode(RequestMessage.java:136) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.connection.CommandMessage.encode(CommandMessage.java:59) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:360) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.connection.UsageTrackingInternalConnection.sendAndReceive(UsageTrackingInternalConnection.java:114) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.sendAndReceive(DefaultConnectionPool.java:765) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.connection.CommandProtocolImpl.execute(CommandProtocolImpl.java:76) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:209) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:115) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:83) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.connection.DefaultServer$OperationCountTrackingConnection.command(DefaultServer.java:307) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.operation.MixedBulkWriteOperation.executeCommand(MixedBulkWriteOperation.java:395) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.operation.MixedBulkWriteOperation.executeBulkWriteBatch(MixedBulkWriteOperation.java:259) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.operation.MixedBulkWriteOperation.lambda$execute$2(MixedBulkWriteOperation.java:203) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.operation.SyncOperationHelper.lambda$withSourceAndConnection$0(SyncOperationHelper.java:127) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.operation.SyncOperationHelper.withSuppliedResource(SyncOperationHelper.java:152) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.operation.SyncOperationHelper.lambda$withSourceAndConnection$1(SyncOperationHelper.java:126) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.operation.SyncOperationHelper.withSuppliedResource(SyncOperationHelper.java:152) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.operation.SyncOperationHelper.withSourceAndConnection(SyncOperationHelper.java:125) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.operation.MixedBulkWriteOperation.lambda$execute$3(MixedBulkWriteOperation.java:188) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.operation.MixedBulkWriteOperation.lambda$decorateWriteWithRetries$0(MixedBulkWriteOperation.java:146) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.async.function.RetryingSyncSupplier.get(RetryingSyncSupplier.java:67) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:207) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.internal.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:77) ~[mongodb-driver-core-4.11.0.jar:?]
at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:173) ~[mongodb-driver-sync-4.11.0.jar:?]
at com.mongodb.client.internal.MongoCollectionImpl.executeSingleWriteRequest(MongoCollectionImpl.java:1085) ~[mongodb-driver-sync-4.11.0.jar:?]
at com.mongodb.client.internal.MongoCollectionImpl.executeReplaceOne(MongoCollectionImpl.java:575) ~[mongodb-driver-sync-4.11.0.jar:?]
at com.mongodb.client.internal.MongoCollectionImpl.replaceOne(MongoCollectionImpl.java:558) ~[mongodb-driver-sync-4.11.0.jar:?]
at ru.minecomplex.core.impl.repo.MongoRepository.save(MongoRepository.java:95) ~[NetworkBukkit.jar:?]
at ru.minecomplex.prison.repository.RegionalRepository.create(RegionalRepository.java:71) ~[Prison.jar:?]
at ru.minecomplex.prison.island.IslandManager.create(IslandManager.java:38) ~[Prison.jar:?]
at ru.minecomplex.prison.island.IslandManager.get(IslandManager.java:47) ~[Prison.jar:?]
at ru.minecomplex.prison.util.ContextUtil.lambda$registerContext$2(ContextUtil.java:80) ~[Prison.jar:?]
at co.aikar.commands.RegisteredCommand.resolveContexts(RegisteredCommand.java:231) ~[NetworkBukkit.jar:?]
at co.aikar.commands.RegisteredCommand.resolveContexts(RegisteredCommand.java:198) ~[NetworkBukkit.jar:?]
at co.aikar.commands.RegisteredCommand.invoke(RegisteredCommand.java:135) ~[NetworkBukkit.jar:?]
at co.aikar.commands.BaseCommand.processCommand(BaseCommand.java:565) ~[NetworkBukkit.jar:?]
at co.aikar.commands.BaseCommand.executeCommand(BaseCommand.java:552) ~[NetworkBukkit.jar:?]
at co.aikar.commands.BaseCommand.execute(BaseCommand.java:491) ~[NetworkBukkit.jar:?]
at co.aikar.commands.RootCommand.execute(RootCommand.java:99) ~[NetworkBukkit.jar:?]
at co.aikar.commands.BukkitRootCommand.execute(BukkitRootCommand.java:84) ~[NetworkBukkit.jar:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168) ~[purpur-api-1.20.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_20_R2.CraftServer.dispatchCommand(CraftServer.java:1005) ~[purpur-1.20.2.jar:git-Purpur-"98d5dd5"]
at org.bukkit.craftbukkit.v1_20_R2.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64) ~[purpur-1.20.2.jar:git-Purpur-"98d5dd5"]
at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:265) ~[purpur-1.20.2.jar:?]
at net.minecraft.commands.Commands.performCommand(Commands.java:338) ~[?:?]
at net.minecraft.commands.Commands.performCommand(Commands.java:322) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2279) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$20(ServerGamePacketListenerImpl.java:2239) ~[?:?]
at net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:59) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[purpur-1.20.2.jar:git-Purpur-"98d5dd5"]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1351) ~[purpur-1.20.2.jar:git-Purpur-"98d5dd5"]
at net.minecraft.server.MinecraftServer.wrapRunnable(MinecraftServer.java:193) ~[purpur-1.20.2.jar:git-Purpur-"98d5dd5"]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1328) ~[purpur-1.20.2.jar:git-Purpur-"98d5dd5"]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1321) ~[purpur-1.20.2.jar:git-Purpur-"98d5dd5"]
at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1299) ~[purpur-1.20.2.jar:git-Purpur-"98d5dd5"]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1187) ~[purpur-1.20.2.jar:git-Purpur-"98d5dd5"]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:320) ~[purpur-1.20.2.jar:git-Purpur-"98d5dd5"]
at java.lang.Thread.run(Thread.java:833) ~[?:?]_
Please provide the version of the driver. If applicable, please provide the MongoDB server version and topology (standalone, replica set, or sharded cluster).
How to Reproduce
Steps to reproduce. If possible, please include a Short, Self Contained, Correct (Compilable), Example.
Make the same class with any other "World" field that contains a property which gives an similar error.
Additional Background
Please provide any additional background information that may be helpful in diagnosing the bug.
|