PJ did a great job of fixing the bug <https://github.com/FasterXML/jackson-module-scala/issues/542>, 2.13.0 is good to go as far as I'm concerned. Thanks again PJ!
On Tue, Sep 14, 2021 at 6:48 PM Nakamura <nakamura.mo...@gmail.com> wrote: > OK, I did some more research. Two updates: > > 1. Filed an issue > <https://github.com/FasterXML/jackson-module-scala/issues/542> about the > malformed class name > 2. I looked into the JsonNode thing. Basically we were creating an empty > ArrayNode, and calling ArrayNode#add(Short). Previously, this inserted an > IntNode, but now it inserts a ShortNode. This seems like a bugfix, so I > don't think we need to take any action. > > The scala bug is the only thing that I think would prevent us from > upgrading right now, but I'll try to confirm in the next couple of hours. > > On Sat, Sep 4, 2021 at 4:27 PM Tatu Saloranta <t...@fasterxml.com> wrote: > >> On Fri, Sep 3, 2021 at 12:56 PM Nakamura <nakamura.mo...@gmail.com> >> wrote: >> > >> > OK, I haven't finished working through the issues yet. I'm trying to >> upgrade from 2.11.4 to 2.13.0-rc2. After fixing some expected breaking >> changes, here are a few I found: >> >> First of all, thank you for going through testing, reporting issues! >> >> > >> > 1. We have tests that compare the values of JsonNodes. After the >> upgrade, it started failing when it said that IntNode and ShortNode are not >> equal. I haven't pinpointed what has changed (whether it's equality, or >> how things are turned into ShortNode or IntNode). I'll update the thread >> once I've figured it out. >> >> Interesting. I do not have a good idea here; although I do know that >> the comparison across different node types and esp. for Numeric types >> is challenging in general. >> This is one reason why external comparator approach with JsonNode method: >> >> public boolean equals(Comparator<JsonNode> comparator, JsonNode >> other) { >> >> is strongly recommended; plain `equals()` is notoriously difficult to >> make work reliably (has to work "both ways" across different types >> etc). >> >> Having said that, IntNode.equals() and ShortNode.equals() appear >> unchanged between 2.11 and 2.13; and both would fail comparison >> (they assume strict type equality). >> So the issue is probably more with construction of ShortNode vs >> IntNode for some input... >> >> > >> > 2. We have a test that tries to read all of the resources files. When >> it comes across jackson, it says "File Not Found". >> > > ..../ >> repo1.maven.org/com/fasterxml/jackson/core/jackson-databind/2.13.0-rc2/jackson-databind-2.13.0-rc2.jar!/META-INF/versions/11 >> (No such file or directory) >> >> That is a weird one for sure. >> >> The location of `module-info.class` did move from main-level (in 2.11 >> and 2.12) to under `META-INF/versions/11`: this to prevent issues with >> some older Java 8 >> clients. But no idea how this could cause other issues. >> >> > 3. I'm getting a Malformed class name exception from the >> jackson-scala-module. >> > >> > java.lang.InternalError: Malformed class name >> > at java.lang.Class.getSimpleName(Class.java:1330) >> > at >> java.lang.Class.getCanonicalName(Class.java:1399) >> > at >> com.fasterxml.jackson.module.scala.util.TastyUtil$.hasTastyFile(TastyUtil.scala:10) >> > at >> com.fasterxml.jackson.module.scala.util.ClassW.extendsScalaClass(Classes.scala:12) >> > at >> com.fasterxml.jackson.module.scala.util.ClassW.extendsScalaClass$(Classes.scala:9) >> > at >> com.fasterxml.jackson.module.scala.util.ClassW$$anon$1.extendsScalaClass(Classes.scala:34) >> > at >> com.fasterxml.jackson.module.scala.introspect.ScalaAnnotationIntrospector$._descriptorFor(ScalaAnnotationIntrospectorModule.scala:157) >> > at >> com.fasterxml.jackson.module.scala.introspect.ScalaAnnotationIntrospector$.fieldName(ScalaAnnotationIntrospectorModule.scala:173) >> > at >> com.fasterxml.jackson.module.scala.introspect.ScalaAnnotationIntrospector$.findImplicitPropertyName(ScalaAnnotationIntrospectorModule.scala:46) >> > at >> com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair.findImplicitPropertyName(AnnotationIntrospectorPair.java:502) >> > at >> com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._addFields(POJOPropertiesCollector.java:530) >> > at >> com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collectAll(POJOPropertiesCollector.java:421) >> > at >> com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.getPropertyMap(POJOPropertiesCollector.java:386) >> > at >> com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.getProperties(POJOPropertiesCollector.java:233) >> > at >> com.fasterxml.jackson.databind.introspect.BasicBeanDescription._properties(BasicBeanDescription.java:164) >> > at >> com.fasterxml.jackson.databind.introspect.BasicBeanDescription.findProperties(BasicBeanDescription.java:239) >> > at >> com.fasterxml.jackson.databind.deser.BasicDeserializerFactory._findCreatorsFromProperties(BasicDeserializerFactory.java:328) >> > at >> com.fasterxml.jackson.databind.deser.BasicDeserializerFactory._constructDefaultValueInstantiator(BasicDeserializerFactory.java:272) >> > at >> com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.findValueInstantiator(BasicDeserializerFactory.java:223) >> > at >> com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.buildBeanDeserializer(BeanDeserializerFactory.java:261) >> > at >> com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:150) >> > at >> com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:415) >> > at >> com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:350) >> > at >> com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:264) >> > at >> com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244) >> > at >> com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142) >> > at >> com.fasterxml.jackson.databind.DeserializationContext.findNonContextualValueDeserializer(DeserializationContext.java:632) >> > at >> com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:539) >> > at >> com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:294) >> > at >> com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244) >> > at >> com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142) >> > at >> com.fasterxml.jackson.databind.DeserializationContext.findContextualValueDeserializer(DeserializationContext.java:609) >> > at >> com.fasterxml.jackson.databind.deser.std.MapDeserializer.createContextual(MapDeserializer.java:316) >> > at >> com.fasterxml.jackson.module.scala.deser.GenericMapFactoryDeserializerResolver$Deserializer.createContextual(GenericMapFactoryDeserializerResolver.scala:122) >> > at >> com.fasterxml.jackson.databind.DeserializationContext.handlePrimaryContextualization(DeserializationContext.java:825) >> > at >> com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:550) >> > at >> com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:294) >> > at >> com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244) >> > at >> com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142) >> > at >> com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:642) >> > at >> com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:4751) >> > at >> com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4621) >> > at >> com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3575) >> > at >> com.fasterxml.jackson.module.scala.ScalaObjectMapper.readValue(ScalaObjectMapper.scala:206) >> > at >> com.fasterxml.jackson.module.scala.ScalaObjectMapper.readValue$(ScalaObjectMapper.scala:205) >> >> Possibly worth filing separate jackson-module-scala issue? >> >> > >> > I have been too busy with other things at work to dig in and understand >> where these bugs are coming from, or how easy they are to work around, but >> I'll try to update you shortly. >> >> Excellent work so far, looking forward to learning more! >> >> -+ Tatu +- >> >> > >> > Best, >> > Moses >> > >> > On Mon, Aug 30, 2021 at 1:00 PM Tatu Saloranta <tsalora...@gmail.com> >> wrote: >> >> >> >> On Mon, Aug 30, 2021 at 7:02 AM Nakamura <nakamura.mo...@gmail.com> >> wrote: >> >>> >> >>> Hi Tatu, >> >>> I've started testing with RC2 across my company's monorepo, and I'm >> seeing a bunch of test failures. Could you please wait until at least next >> week to promote to stable? I'll need some time to figure out which are >> fragile tests vs real regressions. >> >>> Best, >> >>> Moses >> >> >> >> >> >> Yes, I will not be releasing 2.13.0 next weekend: probably will take >> at least 2 weeks from now on. >> >> >> >> -+ Tatu +- >> >> >> >>> >> >>> >> >>> On Fri, Aug 27, 2021 at 1:22 PM Tatu Saloranta <tsalora...@gmail.com> >> wrote: >> >>>> >> >>>> As per title, I decided that instead of trying to release the >> official 2.13.0, it makes sense to instead push another release candidate. >> >>>> Decision is due to: >> >>>> >> >>>> 1. Multiple fixes since rc1, including important ones (see >> https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.13 -- alas, >> fixes for rc1 not separated) >> >>>> 2. A few bugs remain on the list of "really want to fix for 2.13.0 >> final" (see >> https://github.com/FasterXML/jackson-future-ideas/wiki/Jackson-Work-in-Progress >> ) >> >>>> >> >>>> I have also had much less time to work on Jackson itself lately >> (first due to vacation, but also due to starting a new job which requires a >> lot of active learning at this point) so things are a bit slow on getting >> PRs integrated, verified and so on. >> >>>> I feel that avoiding the rush to "just get it done" makes sense >> here, to minimize the possibility of regressions. >> >>>> >> >>>> Having said that, I do hope that the final 2.13.0 will get out by >> mid-September 2021. >> >>>> >> >>>> At this point I would REALLY welcome help in >> regression/compatibility testing Jackson 2.13.0-rc2. Thank you everyone who >> tested, reported issues with 2.13.0-rc1! >> >>>> >> >>>> -+ Tatu +- >> >>>> >> >>>> >> >>>> -- >> >>>> You received this message because you are subscribed to the Google >> Groups "jackson-user" group. >> >>>> To unsubscribe from this group and stop receiving emails from it, >> send an email to jackson-user+unsubscr...@googlegroups.com. >> >>>> To view this discussion on the web visit >> https://groups.google.com/d/msgid/jackson-user/CAGrxA25gN%2BWHoOzF9Rr_umR3%3DPEUs4JQxEM9kO%2BUDL0fYeozrA%40mail.gmail.com >> . >> >>> >> >>> -- >> >>> You received this message because you are subscribed to the Google >> Groups "jackson-user" group. >> >>> To unsubscribe from this group and stop receiving emails from it, >> send an email to jackson-user+unsubscr...@googlegroups.com. >> >>> To view this discussion on the web visit >> https://groups.google.com/d/msgid/jackson-user/CAEYWR9vzobuTaw3_eNtgdfVFTCiy%2BjcsXjSkZNV5bQ%2BPhAwOSQ%40mail.gmail.com >> . >> >> >> >> -- >> >> You received this message because you are subscribed to the Google >> Groups "jackson-user" group. >> >> To unsubscribe from this group and stop receiving emails from it, send >> an email to jackson-user+unsubscr...@googlegroups.com. >> >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/jackson-user/CAGrxA25%2B5SowwgSWmb301qYj_nOnAdQ6wwB3tSFDLeufkndBVg%40mail.gmail.com >> . >> > >> > -- >> > You received this message because you are subscribed to the Google >> Groups "jackson-user" group. >> > To unsubscribe from this group and stop receiving emails from it, send >> an email to jackson-user+unsubscr...@googlegroups.com. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/jackson-user/CAEYWR9vUq0t%2BMy7_bKf8A1g_NL1XLXAU_kRT5sPn_hjtZz83HQ%40mail.gmail.com >> . >> >> -- >> You received this message because you are subscribed to the Google Groups >> "jackson-user" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to jackson-user+unsubscr...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/jackson-user/CAL4a10jPtxgCE%2BELikXtO9PgPHAhQQa%2BjZj173CNtbE3ZChirA%40mail.gmail.com >> . >> > -- You received this message because you are subscribed to the Google Groups "jackson-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to jackson-user+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jackson-user/CAEYWR9tNOvwr3ObxZtTx_Zx%3DDRA_LZ-3UDqOgUNR7XBxjsBu8A%40mail.gmail.com.