BsonBinary doesn't validate length

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Done
    • Priority: Minor - P4
    • None
    • Affects Version/s: 3.0.3
    • Component/s: BSON
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Example:

              when:
              def json = '{ "_id" : { "$binary" : "QUJSV1RJRkdQRWVTRmY2OWZJU0FPQT09", "$type" : "3" } }'
              def bdoc = BsonDocument.parse(json)
      
              then:
              bdoc.toJson() == json
      
              then:
              def bin = bdoc.getBinary("_id")
              bin.data.size() == 16 // FAILS
      

      Compared to Document:

      Document.parse('{ "_id" : { "$binary" : "QUJSV1RJRkdQRWVTRmY2OWZJU0FPQT09", "$type" : "03" } }')
      
      org.bson.BsonSerializationException: Expected length to be 16, not 24.
      	at org.bson.codecs.UuidCodec.decode(UuidCodec.java:100)
      	at org.bson.codecs.UuidCodec.decode(UuidCodec.java:36)
      	at org.bson.codecs.DocumentCodec.readValue(DocumentCodec.java:212)
      	at org.bson.codecs.DocumentCodec.decode(DocumentCodec.java:141)
      	at org.bson.codecs.DocumentCodec.decode(DocumentCodec.java:45)
      	at org.bson.Document.parse(Document.java:105)
      	at org.bson.Document.parse(Document.java:90)
      	at org.bson.BsonDocumentSpecification.test parse(BsonDocumentSpecification.groovy:287)
      

            Assignee:
            Unassigned
            Reporter:
            Ross Lawley
            None
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: