[infinispan-issues] [JBoss JIRA] (IPROTO-120) Null collection fields always unmarshalled as empty collection implementation

Ryan Emerson (Jira) issues at jboss.org
Wed Oct 2 09:13:00 EDT 2019


Ryan Emerson created IPROTO-120:
-----------------------------------

             Summary: Null collection fields always unmarshalled as empty collection implementation
                 Key: IPROTO-120
                 URL: https://issues.jboss.org/browse/IPROTO-120
             Project: Infinispan ProtoStream
          Issue Type: Bug
            Reporter: Ryan Emerson


The following Pojo always returns an empty collection after being unmarshalled, regardless of whether {{stringList}} was null or empty when marshalled.

{code:java}
public class SomePojo {

   @ProtoField(number = 1, collectionImplementation = ArrayList.class)
   final List<String> stringList;

   @ProtoFactory
   public SomePojo(List<String> stringList) {
      this.stringList = stringList;
   }
}
{code}

This is because the generated marshaller always creates the collection instance before attempting to read the collection content:

{code:java}
      java.util.ArrayList __c$1 = new java.util.ArrayList();
      boolean done = false;
      while (!done) {
         final int tag = $2.readTag();
         switch (tag) {
            case 0:
               done = true;
               break;
            case 10: {
               java.lang.String __v$1 = $2.readString();
               __c$1.add(__v$1);
               break;
            }
            default: {
               if (!$2.skipField(tag)) done = true;
            }
         }
      }
      
      return new org.infinispan.query.dsl.embedded.testdomain.hsearch.SomePojo(__c$1);
{code}



--
This message was sent by Atlassian Jira
(v7.13.8#713008)


More information about the infinispan-issues mailing list