sounds good François
Le 18 févr. 2016 à 10:43, Martin Grigorov <mgrigo...@apache.org> a écrit : > I'd suggest to fix it by: > 1) in Wicket 7.x upgrade Jackson to 2.6.latest and add the second method > 2) in Wicket 8.x upgrade to 2.7.latest and update the argument. > > Martin Grigorov > Wicket Training and Consulting > https://twitter.com/mtgrigorov > > On Thu, Feb 18, 2016 at 10:39 AM, Francois Meillet < > francois.meil...@gmail.com> wrote: > >> >> Before the 7.0.0 release, wicket-extension used >> >> <groupId>org.codehaus.jackson</groupId> >> <artifactId>jackson-mapper-asl</artifactId> >> <version>1.8.5</version> >> >> So no change can be done. >> >> >> 7.0.0, 7.1.0 and 7.2.0 use >> >> <groupId>com.fasterxml.jackson.core</groupId> >> <artifactId>jackson-databind</artifactId> >> <version>2.4.1.3</version> >> >> >> >> JacksonAnnotationIntrospector >> >> /** >> * @deprecated (since 2.3) Use {@link #findFilterId(Annotated)} instead >> */ >> @Deprecated >> @Override >> public Object findFilterId(AnnotatedClass ac) { >> return _findFilterId(ac); >> } >> >> @Override >> public Object findFilterId(Annotated a) { >> return _findFilterId(a); >> } >> >> so the findFilterId(Annotated a) can be used in the JsonRequestLogger # >> FilteredIntrospector >> >> >> findFilterId(AnnotatedClass ac) has been removed from the 2.7 release. >> >> >> The sole Wicket' class using Jackson I found is >> JacksonAnnotationIntrospector, >> so using Jackson 2.7.1 release can be done. >> Tested. ok. >> >> François >> >> >> >> >> >> >> >> Le 18 févr. 2016 à 09:43, Martin Grigorov <mgrigo...@apache.org> a écrit : >> >>> Good! >>> >>> The question now is how to introduce this change without breaking old >>> applications. >>> Having both methods looks like a solution but it may break if the >>> application uses older version of Jackson. >>> I think it should work. >>> Can you try it ? >>> >>> >>> Martin Grigorov >>> Wicket Training and Consulting >>> https://twitter.com/mtgrigorov >>> >>> On Thu, Feb 18, 2016 at 9:35 AM, Francois Meillet < >>> francois.meil...@gmail.com> wrote: >>> >>>> Hi Martin, >>>> >>>> Jackson JacksonAnnotationIntrospector # findFilterId() method signature >>>> has been changed >>>> >>>> from findFilterId(AnnotatedClass ac) to findFilterId(Annotated a) >>>> >>>> >>>> in the JsonRequestLogger, changing this >>>> >>>> private static final class FilteredIntrospector extends >>>> JacksonAnnotationIntrospector >>>> { >>>> @Override >>>> public Object findFilterId(AnnotatedClass ac) >>>> { >>>> return "default"; >>>> } >>>> } >>>> >>>> >>>> to that resolved the problem >>>> >>>> private static final class FilteredIntrospector extends >>>> JacksonAnnotationIntrospector >>>> { >>>> @Override >>>> public Object findFilterId(Annotated a) >>>> { >>>> return "default"; >>>> } >>>> } >>>> >>>> >>>> François >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> Le 18 févr. 2016 à 08:24, Martin Grigorov <mgrigo...@apache.org> a >> écrit : >>>> >>>>> Hi, >>>>> >>>>> >>>>> On Wed, Feb 17, 2016 at 12:10 PM, Francois Meillet < >>>>> francois.meil...@gmail.com> wrote: >>>>> >>>>>> Dear Team, >>>>>> >>>>>> The JsonRequestLogger is not working correctly: >>>>>> >>>>>> JsonRequestLogger --> JsonMappingException --> StackOverflowError >>>> Infinite >>>>>> recursion >>>>>> >>>>>> Wicket : 7.2.0 >>>>>> Jackson : 2.7.1 >>>>>> >>>>>> JsonRequestLogger throw a JsonMappingException when executing >>>>>> getMapper().writeValueAsString(new RequestSessionTuple(rd, sd)); >>>>>> >>>>>> java.lang.RuntimeException: >>>>>> com.fasterxml.jackson.databind.JsonMappingException: >>>>>> Infinite recursion (StackOverflowError) >>>>>> (through reference chain: >>>>>> >>>> >> org.apache.wicket.PageReference["page"]->com.mycompany.SimplePage["pageReference"]->org.apache.wicket.PageReference["page"]->com.mycompany.SimplePage["pageReference"]->org.apache.wicket.PageReference["page"]->.... >>>>>> >>>>>> >>>>>> at >>>>>> >>>> >> org.apache.wicket.extensions.requestlogger.JsonRequestLogger.getLogString(JsonRequestLogger.java:141) >>>>>> ~[wicket-extensions-7.2.0.jar:7.2.0] >>>>>> at >>>>>> >>>> >> org.apache.wicket.extensions.requestlogger.JsonRequestLogger.log(JsonRequestLogger.java:125) >>>>>> ~[wicket-extensions-7.2.0.jar:7.2.0] >>>>>> at >>>>>> >>>> >> org.apache.wicket.protocol.http.AbstractRequestLogger.performLogging(AbstractRequestLogger.java:325) >>>>>> ~[wicket-core-7.2.0.jar:7.2.0] >>>>>> at >>>>>> >>>> >> org.apache.wicket.request.cycle.RequestCycle.onInternalDetach(RequestCycle.java:620) >>>>>> ~[wicket-core-7.2.0.jar:7.2.0] >>>>>> at >>>>>> >>>> >> org.apache.wicket.request.cycle.RequestCycle.detach(RequestCycle.java:600) >>>>>> ~[wicket-core-7.2.0.jar:7.2.0] >>>>>> at >>>>>> >>>> >> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:297) >>>>>> ~[wicket-core-7.2.0.jar:7.2.0] >>>>>> at >>>>>> >>>> >> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261) >>>>>> ~[wicket-core-7.2.0.jar:7.2.0] >>>>>> at >>>>>> >>>> >> com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:694) >>>>>> ~[jackson-databind-2.7.1.jar:2.7.1] >>>>>> at >>>>>> >>>> >> com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) >>>>>> ~[jackson-databind-2.7.1.jar:2.7.1] >>>>>> at >>>>>> >>>> >> com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:672) >>>>>> ~[jackson-databind-2.7.1.jar:2.7.1] >>>>>> at >>>>>> >>>> >> com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:678) >>>>>> ~[jackson-databind-2.7.1.jar:2.7.1] >>>>>> at >>>>>> >>>> >> com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) >>>>>> ~[jackson-databind-2.7.1.jar:2.7.1] >>>>>> at >>>>>> >>>> >> com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:672) >>>>>> ~[jackson-databind-2.7.1.jar:2.7.1] >>>>>> at >>>>>> >>>> >> com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:678) >>>>>> ~[jackson-databind-2.7.1.jar:2.7.1] >>>>>> at >>>>>> >>>> >> com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157) >>>>>> ~[jackson-databind-2.7.1.jar:2.7.1] >>>>>> at >>>>>> >>>> >> com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:672) >>>>>> ~[jackson-databind-2.7.1.jar:2.7.1] >>>>>> >>>>>> >>>>>> https://issues.apache.org/jira/browse/WICKET-6097 >>>>>> >>>>> >>>>> I'll debug it when I have some time. >>>>> >>>>> >>>>>> >>>>>> >>>>>> BTW, is it worth to mainten this logger ? >>>>>> >>>>> >>>>> AFAIK Martijn and Emond use it in their application. >>>>> But if it fails always with this then maybe they don't use it anymore. >> Or >>>>> they use it with an older version of Jackson. I've had some problems >> with >>>>> Jackson backward compatibility lately. >>>>> >>>>> >>>>>> >>>>>> >>>>>> François >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>> >>>> >> >>