[JAVA-1804] Character is no longer an accepted value of a field Created: 07/May/15  Updated: 16/Jul/15  Resolved: 10/Jul/15

Status: Closed
Project: Java Driver
Component/s: Codecs
Affects Version/s: 3.0.1
Fix Version/s: 3.0.3, 3.1.0

Type: Bug Priority: Minor - P4
Reporter: Emmanuel Bernard Assignee: Jeffrey Yemin
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

In 2.x we could put a Character inside a field value. This is no longer the case in 3.0.

BasicDBObject object = ...
object.put("delimiter", '/');
...
List<DBObject> objectsToInsert = new ArrayList<>();
objectsToInsert.add(object);
 
DBCollection collection = ...
collection.insert(objectsToInsert, WriteConcern.ACKNOWLEDGED);

Raises the following exception

org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class java.lang.Character.
	at org.bson.codecs.configuration.CodecCache.getOrThrow(CodecCache.java:46)
	at org.bson.codecs.configuration.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:63)
	at org.bson.codecs.configuration.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:37)
	at com.mongodb.DBObjectCodec.writeValue(DBObjectCodec.java:210)
	at com.mongodb.DBObjectCodec.encode(DBObjectCodec.java:128)
	at com.mongodb.DBObjectCodec.encode(DBObjectCodec.java:61)
	at com.mongodb.CompoundDBObjectCodec.encode(CompoundDBObjectCodec.java:48)
	at com.mongodb.CompoundDBObjectCodec.encode(CompoundDBObjectCodec.java:27)
	at org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:63)
	at org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:29)
	at com.mongodb.connection.InsertCommandMessage.writeTheWrites(InsertCommandMessage.java:99)
	at com.mongodb.connection.InsertCommandMessage.writeTheWrites(InsertCommandMessage.java:43)
	at com.mongodb.connection.BaseWriteCommandMessage.encodeMessageBody(BaseWriteCommandMessage.java:112)
	at com.mongodb.connection.BaseWriteCommandMessage.encodeMessageBody(BaseWriteCommandMessage.java:35)
	at com.mongodb.connection.RequestMessage.encode(RequestMessage.java:132)
	at com.mongodb.connection.BaseWriteCommandMessage.encode(BaseWriteCommandMessage.java:89)
	at com.mongodb.connection.WriteCommandProtocol.sendMessage(WriteCommandProtocol.java:170)
	at com.mongodb.connection.WriteCommandProtocol.execute(WriteCommandProtocol.java:73)
	at com.mongodb.connection.InsertCommandProtocol.execute(InsertCommandProtocol.java:66)
	at com.mongodb.connection.InsertCommandProtocol.execute(InsertCommandProtocol.java:37)
	at com.mongodb.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:155)
	at com.mongodb.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:219)
	at com.mongodb.connection.DefaultServerConnection.insertCommand(DefaultServerConnection.java:108)
	at com.mongodb.operation.InsertOperation.executeCommandProtocol(InsertOperation.java:76)
	at com.mongodb.operation.BaseWriteOperation$1.call(BaseWriteOperation.java:111)
	at com.mongodb.operation.BaseWriteOperation$1.call(BaseWriteOperation.java:106)
	at com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:186)
	at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:177)
	at com.mongodb.operation.BaseWriteOperation.execute(BaseWriteOperation.java:106)
	at com.mongodb.operation.BaseWriteOperation.execute(BaseWriteOperation.java:58)
	at com.mongodb.Mongo.execute(Mongo.java:745)
	at com.mongodb.Mongo$2.execute(Mongo.java:728)
	at com.mongodb.DBCollection.executeWriteOperation(DBCollection.java:327)
	at com.mongodb.DBCollection.insert(DBCollection.java:323)
	at com.mongodb.DBCollection.insert(DBCollection.java:314)
	at com.mongodb.DBCollection.insert(DBCollection.java:284)
	at com.mongodb.DBCollection.insert(DBCollection.java:250)



 Comments   
Comment by Jeffrey Yemin [ 16/Jul/15 ]

Fix is now available in the 3.0.3 release.

Comment by Jeffrey Yemin [ 10/Jul/15 ]

Backported to 3.0.x branch.

Comment by Githook User [ 10/Jul/15 ]

Author:

{u'username': u'jyemin', u'name': u'Jeff Yemin', u'email': u'jeff.yemin@10gen.com'}

Message: Added CharacterCodec for encoding and decoding from and to a Character.
Added CharacterCodec to ValueCodecProvider.

JAVA-1804
Branch: 3.0.x
https://github.com/mongodb/mongo-java-driver/commit/7eec8b25a38802e0e98839898841af9478146be1

Comment by Jeffrey Yemin [ 28/May/15 ]

Released in 3.0.2.

Comment by Githook User [ 19/May/15 ]

Author:

{u'username': u'jyemin', u'name': u'Jeff Yemin', u'email': u'jeff.yemin@10gen.com'}

Message: Added CharacterCodec for encoding and decoding from and to a Character.
Added CharacterCodec to ValueCodecProvider.

JAVA-1804
Branch: master
https://github.com/mongodb/mongo-java-driver/commit/05ab25b83f0877202584c645555f60934665df3c

Generated at Thu Feb 08 08:55:32 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.