felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Leangen (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FELIX-5666) Serializer goes into infinite loop
Date Thu, 03 Aug 2017 12:49:03 GMT

    [ https://issues.apache.org/jira/browse/FELIX-5666?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16112663#comment-16112663

David Leangen commented on FELIX-5666:

I think that's a good idea. Thanks for giving this thought.

Actually, if the Serializer has this interface, it can "configure" its backing Converter,
so injecting a Converter would only be necessary in very complex cases. Would make the client
code much cleaner.

I don't know if it would be good or not to create that dependency on an interface from the
Converter via inheritance (each time the Serializer API is used it would require the Converter
API), but it could at least have the same methods. I'd have to sit down and think a bit more...

> Serializer goes into infinite loop
> ----------------------------------
>                 Key: FELIX-5666
>                 URL: https://issues.apache.org/jira/browse/FELIX-5666
>             Project: Felix
>          Issue Type: Bug
>          Components: Converter
>            Reporter: David Leangen
>            Assignee: David Bosschaert
> I'm only guessing as to what the problem is, following some stepping through the code.
I could not find any similar existing test cases, but if the following does not immediately
click for [~bosschaert], I will try to add one.
> It appears that, when serializing an object to a "DTO-Type" object to a Map, some kind
of backing object is created.
> If the backing object contains a field that instantiates the same DTO, then the loop
gets created.
> Example:
> {code}
> public class MyDtoType {
>   public String id;
>   public MyDtoType( String anID ) {
>     id = anID;
>   }
>   public static MyDtoType error() {
>     return new MyDtoType( "ERROR" );
>   }
> }
> {code}
> It looks like the serializer keeps calling the error() method infinitely, but I am not
able to easily pinpoint where this happens.

This message was sent by Atlassian JIRA

View raw message