DBRefCodec does not support decoding

Hello!

I’m working on a project with Java and MongoDb. I am using OpenJDK v. 11.0.18 and MongoDB Java driver 4.8.0. The following is the maven dependency from the MongoDB driver.

	<dependency>
		<groupId>org.mongodb</groupId>
		<artifactId>mongodb-driver-sync</artifactId>
		<version>4.8.0</version>
	</dependency>

	<dependency>
		<groupId>org.mongodb</groupId>
		<artifactId>bson</artifactId>
		<version>4.8.0</version>
		<scope>compile</scope>
	</dependency>

I modeled the data to use DBRef according to the following code

public class Recipe implements Comparable<Recipe> {

    private String id;
    private DBRef author;
    // rest of the code omitted 

}

So, at the moment that the POJO Recipe is deserialized, the MongoDB throw an UnsupportedOperationException according to the following stack trace

java.lang.UnsupportedOperationException: DBRefCodec does not support decoding
	at com.mongodb.DBRefCodec.decode(DBRefCodec.java:66)
	at com.mongodb.DBRefCodec.decode(DBRefCodec.java:33)
	at org.bson.codecs.pojo.LazyPropertyModelCodec.decode(LazyPropertyModelCodec.java:51)
	at org.bson.codecs.DecoderContext.decodeWithChildContext(DecoderContext.java:96)
	at org.bson.codecs.pojo.PojoCodecImpl.lambda$decodePropertyModel$2(PojoCodecImpl.java:224)
	at org.bson.codecs.pojo.PojoCodecImpl.setPropertyValue(PojoCodecImpl.java:246)
	at org.bson.codecs.pojo.PojoCodecImpl.decodePropertyModel(PojoCodecImpl.java:214)
	at org.bson.codecs.pojo.PojoCodecImpl.decodeProperties(PojoCodecImpl.java:203)
	at org.bson.codecs.pojo.PojoCodecImpl.decode(PojoCodecImpl.java:112)
	at org.bson.codecs.pojo.PojoCodecImpl.decode(PojoCodecImpl.java:116)
	at org.bson.codecs.pojo.AutomaticPojoCodec.decode(AutomaticPojoCodec.java:37)
	at com.mongodb.internal.operation.CommandResultArrayCodec.decode(CommandResultArrayCodec.java:52)
	at com.mongodb.internal.operation.CommandResultDocumentCodec.readValue(CommandResultDocumentCodec.java:60)
	at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:87)
	at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:42)
	at org.bson.internal.LazyCodec.decode(LazyCodec.java:53)
	at org.bson.codecs.BsonDocumentCodec.readValue(BsonDocumentCodec.java:104)
	at com.mongodb.internal.operation.CommandResultDocumentCodec.readValue(CommandResultDocumentCodec.java:63)
	at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:87)
	at org.bson.codecs.BsonDocumentCodec.decode(BsonDocumentCodec.java:42)
	at com.mongodb.internal.connection.ReplyMessage.<init>(ReplyMessage.java:50)
	at com.mongodb.internal.connection.InternalStreamConnection.getCommandResult(InternalStreamConnection.java:538)
	at com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:423)
	at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:340)
	at com.mongodb.internal.connection.UsageTrackingInternalConnection.sendAndReceive(UsageTrackingInternalConnection.java:116)
	at com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.sendAndReceive(DefaultConnectionPool.java:643)
	at com.mongodb.internal.connection.CommandProtocolImpl.execute(CommandProtocolImpl.java:71)
	at com.mongodb.internal.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:206)
	at com.mongodb.internal.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:119)
	at com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:85)
	at com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:75)
	at com.mongodb.internal.connection.DefaultServer$OperationCountTrackingConnection.command(DefaultServer.java:293)
	at com.mongodb.internal.operation.CommandOperationHelper.createReadCommandAndExecute(CommandOperationHelper.java:233)
	at com.mongodb.internal.operation.FindOperation.lambda$execute$1(FindOperation.java:332)
	at com.mongodb.internal.operation.OperationHelper.lambda$withSourceAndConnection$0(OperationHelper.java:356)
	at com.mongodb.internal.operation.OperationHelper.withSuppliedResource(OperationHelper.java:381)
	at com.mongodb.internal.operation.OperationHelper.lambda$withSourceAndConnection$1(OperationHelper.java:355)
	at com.mongodb.internal.operation.OperationHelper.withSuppliedResource(OperationHelper.java:381)
	at com.mongodb.internal.operation.OperationHelper.withSourceAndConnection(OperationHelper.java:354)
	at com.mongodb.internal.operation.FindOperation.lambda$execute$2(FindOperation.java:329)
	at com.mongodb.internal.async.function.RetryingSyncSupplier.get(RetryingSyncSupplier.java:67)
	at com.mongodb.internal.operation.FindOperation.execute(FindOperation.java:340)
	at com.mongodb.internal.operation.FindOperation.execute(FindOperation.java:79)
	at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:191)
	at com.mongodb.client.internal.MongoIterableImpl.execute(MongoIterableImpl.java:133)
	at com.mongodb.client.internal.MongoIterableImpl.iterator(MongoIterableImpl.java:90)
	at com.recipe.book.api.repositories.RecipeRepositoryImpl.findAll(RecipeRepositoryImpl.java:37)

I see that the com.mongodb.DBRefCodec throws it when the decode() method is called. Said that I ask how to make the driver deserialize/serialize the DBRef from/to POJO?