[ https://issues.apache.org/jira/browse/SOLR-13347?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16854420#comment-16854420 ]
Thomas Wöckinger edited comment on SOLR-13347 at 6/3/19 9:50 AM: ----------------------------------------------------------------- Ok, so i looked at JavaBinCodec.ObjectResolver in TransactionLog, it seems to be easy to put serialization Code there, but the reading side is using JavaBinCodec to get the objects out of the TransactionLog where a type tag is required. Another possibility would be to put it into LogCodec which is extending JavaBinCodec. The change would be visible to the TransactionLog only. It is not a perfect solution because LogCodec is depending on JavaBinCodec, but JavaBinCodec does not know anything of LogCodec by design. was (Author: thomas.woeckinger): Ok, so i looked at JavaBinCodec.ObjectResolver in TransactionLog, it seems to be easy to put serialization Code there, but the reading side is using JavaBinCodec to get the objects out of the TransactionLog where a type tag is required. Another possibility would be to put it into LogCodec which is extending JavaBinCodec. The change would be visible to the TransactionLog only. > Error writing Transaction log for UUIDField > ------------------------------------------- > > Key: SOLR-13347 > URL: https://issues.apache.org/jira/browse/SOLR-13347 > Project: Solr > Issue Type: Bug > Security Level: Public(Default Security Level. Issues are Public) > Components: Server > Affects Versions: 7.7, 7.7.1, 8.0 > Reporter: Thomas Wöckinger > Priority: Major > Labels: pull-request-available, ready-to-commit, test > Attachments: SOLR-13347.patch > > Time Spent: 2.5h > Remaining Estimate: 0h > > When using Atomic Update, adding a value leads to following Exception > org.apache.solr.common.SolrException: TransactionLog doesn't know how to > serialize class java.util.UUID; try implementing ObjectResolver? > at > org.apache.solr.update.TransactionLog$1.resolve(TransactionLog.java:100) > at > org.apache.solr.common.util.JavaBinCodec.writeVal(JavaBinCodec.java:263) > at > org.apache.solr.common.util.JavaBinCodec.writeArray(JavaBinCodec.java:770) > at > org.apache.solr.common.util.JavaBinCodec.writeKnownType(JavaBinCodec.java:369) > at > org.apache.solr.common.util.JavaBinCodec.writeKnownType(JavaBinCodec.java:362) > at > org.apache.solr.common.util.JavaBinCodec.writeVal(JavaBinCodec.java:252) > at > org.apache.solr.common.util.JavaBinCodec$BinEntryWriter.put(JavaBinCodec.java:437) > at > org.apache.solr.common.MapWriter$EntryWriter.putNoEx(MapWriter.java:100) > at > org.apache.solr.common.MapWriter$EntryWriter.lambda$getBiConsumer$0(MapWriter.java:160) > at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) > at > org.apache.solr.common.SolrInputDocument.writeMap(SolrInputDocument.java:51) > at > org.apache.solr.common.util.JavaBinCodec.writeSolrInputDocument(JavaBinCodec.java:657) > at org.apache.solr.update.TransactionLog.write(TransactionLog.java:371) > at org.apache.solr.update.UpdateLog.add(UpdateLog.java:573) > at org.apache.solr.update.UpdateLog.add(UpdateLog.java:552) > at > org.apache.solr.update.DirectUpdateHandler2.doNormalUpdate(DirectUpdateHandler2.java:351) > at > org.apache.solr.update.DirectUpdateHandler2.addDoc0(DirectUpdateHandler2.java:289) > at > org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:236) > at > org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:76) > at > org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:55) > at > org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalAdd(DistributedUpdateProcessor.java:995) > at > org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:1216) > at > org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:700) > at > org.apache.solr.update.processor.LogUpdateProcessorFactory$LogUpdateProcessor.processAdd(LogUpdateProcessorFactory.java:103) > at > org.apache.solr.handler.loader.JavabinLoader$1.update(JavabinLoader.java:110) > at > org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$StreamingCodec.readOuterMostDocIterator(JavaBinUpdateRequestCodec.java:327) > at > org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$StreamingCodec.readIterator(JavaBinUpdateRequestCodec.java:280) > at > org.apache.solr.common.util.JavaBinCodec.readObject(JavaBinCodec.java:335) > at org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:280) > at > org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$StreamingCodec.readNamedList(JavaBinUpdateRequestCodec.java:235) > at > org.apache.solr.common.util.JavaBinCodec.readObject(JavaBinCodec.java:300) > at org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:280) > at > org.apache.solr.common.util.JavaBinCodec.unmarshal(JavaBinCodec.java:193) > at > org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.unmarshal(JavaBinUpdateRequestCodec.java:126) > at > org.apache.solr.handler.loader.JavabinLoader.parseAndLoadDocs(JavabinLoader.java:123) > at > org.apache.solr.handler.loader.JavabinLoader.load(JavabinLoader.java:70) > at > org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:97) > at > org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:68) > at > org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199) > at org.apache.solr.core.SolrCore.execute(SolrCore.java:2559) -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org