-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
None
-
None
The following Pojo always returns an empty collection after being unmarshalled, regardless of whether stringList was null or empty when marshalled.
public class SomePojo { @ProtoField(number = 1, collectionImplementation = ArrayList.class) final List<String> stringList; @ProtoFactory public SomePojo(List<String> stringList) { this.stringList = stringList; } }
This is because the generated marshaller always creates the collection instance before attempting to read the collection content:
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);
- is caused by
-
IPROTO-64 Annotation based marshallers should unmarshall empty repeatable fields as empty collections instead of null
- Resolved