[ https://issues.apache.org/jira/browse/SOLR-8866?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Smiley updated SOLR-8866: ------------------------------- Attachment: SOLR_8866_UpdateLog_show_throw_for_unknown_types.patch Here's a patch. I isolated the change to TransactionLog.java and added a test. I don't love where I put the test but I'm not sure of a more suitable place. Originally I tried making the change on JavaBinCodec but there are a bunch of things that get serialized by BinaryResponseWriter like a Lucene Explaination, Directory, and Java Throwable. Possibly others. So instead of playing wack-a-mole there I limited the scope of this to where it's most important. Tests pass. > JavaBinCodec should throw an exception when serializing unknown types > --------------------------------------------------------------------- > > Key: SOLR-8866 > URL: https://issues.apache.org/jira/browse/SOLR-8866 > Project: Solr > Issue Type: Improvement > Reporter: David Smiley > Assignee: David Smiley > Attachments: SOLR_8866_UpdateLog_show_throw_for_unknown_types.patch > > > When JavaBinCodec encounters a class it doesn't have explicit knowledge of > how to serialize, nor does it implement the {{ObjectResolver}} interface, it > currently serializes the object as the classname, colon, then toString() of > the object. > This may appear innocent but _not_ throwing an exception hides bugs. One > example is that the UpdateLog, which uses JavaBinCodec, to save a document. > The result is that this bad value winds up there, gets deserialized as a > String in PeerSync (which uses /get) and then this value pretends to be a > suitable value to the final document in the leader. But of course it isn't. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org