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
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
>
>

Reply via email to