[JBoss JIRA] (IPROTO-100) Annotated Collection Class Method cannot be converted to Collection
by Nistor Adrian (Jira)
[ https://issues.jboss.org/browse/IPROTO-100?page=com.atlassian.jira.plugin... ]
Nistor Adrian updated IPROTO-100:
---------------------------------
Fix Version/s: 4.3.0.Final
> Annotated Collection Class Method cannot be converted to Collection
> -------------------------------------------------------------------
>
> Key: IPROTO-100
> URL: https://issues.jboss.org/browse/IPROTO-100
> Project: Infinispan ProtoStream
> Issue Type: Bug
> Reporter: Ryan Emerson
> Assignee: Nistor Adrian
> Priority: Major
> Fix For: 4.3.0.Alpha9, 4.3.0.Final
>
>
> Reproducing code
> {code:java}
> public class MagicKeyStringFilter implements KeyValueFilter<MagicKey, String> {
> Map<MagicKey, String> allowedEntries;
> MagicKeyStringFilter() {}
> MagicKeyStringFilter(Map<MagicKey, String> allowedEntries) {
> this.allowedEntries = allowedEntries;
> }
> @ProtoField(number = 1, collectionImplementation = ArrayList.class)
> public List<MapPair> getMapEntries() {
> return new ArrayList<>();
> }
> public void setMapEntries(List<MapPair> entries) {
> // No-op but has influence on error
> }
> }
> public class MapPair {
> @ProtoField(number = 1)
> MagicKey key;
> @ProtoField(number = 2)
> String value;
> MapPair() {}
> MapPair(Map.Entry<MagicKey, String> entry) {
> this.key = entry.getKey();
> this.value = entry.getValue();
> }
> }
> {code}
> {code:java}
> core/target/generated-test-sources/test-annotations/org/infinispan/stream/MagicKeyStringFilter$___Marshaller89f891e2edf7d63eb676a6effb5379a47edc312b.java:[56,41] incompatible types: org.infinispan.stream.MapPair cannot be converted to java.util.Collection
> {code}
> Generated marshaller code:
> {code:java}
> /**
> * WARNING: Generated code!
> */
> @javax.annotation.Generated(value = "org.infinispan.protostream.annotations.impl.processor.AutoProtoSchemaBuilderAnnotationProcessor",
> comments = "Please do not edit this file!")
> @SuppressWarnings("unchecked")
> public final class MagicKeyStringFilter$___Marshaller89f891e2edf7d63eb676a6effb5379a47edc312b extends org.infinispan.protostream.annotations.impl.GeneratedMarshallerBase implements org.infinispan.protostream.RawProtobufMarshaller<org.infinispan.stream.MagicKeyStringFilter> {
> private org.infinispan.protostream.impl.BaseMarshallerDelegate __md$org$infinispan$stream$MapPair;
>
> @Override
> public Class<org.infinispan.stream.MagicKeyStringFilter> getJavaClass() { return org.infinispan.stream.MagicKeyStringFilter.class; }
>
> @Override
> public String getTypeName() { return "org.infinispan.test.MagicKeyStringFilter"; }
>
> @Override
> public org.infinispan.stream.MagicKeyStringFilter readFrom(org.infinispan.protostream.ImmutableSerializationContext $1, org.infinispan.protostream.RawProtoStreamReader $2) throws java.io.IOException {
> final org.infinispan.stream.MagicKeyStringFilter o = new org.infinispan.stream.MagicKeyStringFilter();
> java.util.ArrayList __c$mapEntries = new java.util.ArrayList();
> boolean done = false;
> while (!done) {
> final int tag = $2.readTag();
> switch (tag) {
> case 0:
> done = true;
> break;
> case 10:
> {
> if (__md$org$infinispan$stream$MapPair == null) __md$org$infinispan$stream$MapPair = ((org.infinispan.protostream.impl.SerializationContextImpl) $1).getMarshallerDelegate(org.infinispan.stream.MapPair.class);
> int length = $2.readRawVarint32();
> int oldLimit = $2.pushLimit(length);
> org.infinispan.stream.MapPair v = (org.infinispan.stream.MapPair) readMessage(__md$org$infinispan$stream$MapPair, $2);
> $2.checkLastTagWas(0);
> $2.popLimit(oldLimit);
> if (__c$mapEntries == null) __c$mapEntries = new java.util.ArrayList();
> __c$mapEntries.add(v);
> }
> break;
> default:
> {
> if (!$2.skipField(tag)) done = true;
> }
> }
> }
> o.setMapEntries(__c$mapEntries);
> return o;
> }
>
> @Override
> public void writeTo(org.infinispan.protostream.ImmutableSerializationContext $1, org.infinispan.protostream.RawProtoStreamWriter $2, org.infinispan.stream.MagicKeyStringFilter $3) throws java.io.IOException {
> final org.infinispan.stream.MagicKeyStringFilter o = (org.infinispan.stream.MagicKeyStringFilter) $3;
> {
> final java.util.Collection c = (org.infinispan.stream.MapPair) o.getMapEntries();
> if (c != null)
> for (java.util.Iterator it = c.iterator(); it.hasNext(); ) {
> final org.infinispan.stream.MapPair v = (org.infinispan.stream.MapPair) it.next();
> {
> if (__md$org$infinispan$stream$MapPair == null) __md$org$infinispan$stream$MapPair = ((org.infinispan.protostream.impl.SerializationContextImpl) $1).getMarshallerDelegate(org.infinispan.stream.MapPair.class);
> writeNestedMessage(__md$org$infinispan$stream$MapPair, $2, 1, v);
> }
> }
> }
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 4 months
[JBoss JIRA] (IPROTO-100) Annotated Collection Class Method cannot be converted to Collection
by Nistor Adrian (Jira)
[ https://issues.jboss.org/browse/IPROTO-100?page=com.atlassian.jira.plugin... ]
Work on IPROTO-100 started by Nistor Adrian.
--------------------------------------------
> Annotated Collection Class Method cannot be converted to Collection
> -------------------------------------------------------------------
>
> Key: IPROTO-100
> URL: https://issues.jboss.org/browse/IPROTO-100
> Project: Infinispan ProtoStream
> Issue Type: Bug
> Reporter: Ryan Emerson
> Assignee: Nistor Adrian
> Priority: Major
> Fix For: 4.3.0.Alpha9, 4.3.0.Final
>
>
> Reproducing code
> {code:java}
> public class MagicKeyStringFilter implements KeyValueFilter<MagicKey, String> {
> Map<MagicKey, String> allowedEntries;
> MagicKeyStringFilter() {}
> MagicKeyStringFilter(Map<MagicKey, String> allowedEntries) {
> this.allowedEntries = allowedEntries;
> }
> @ProtoField(number = 1, collectionImplementation = ArrayList.class)
> public List<MapPair> getMapEntries() {
> return new ArrayList<>();
> }
> public void setMapEntries(List<MapPair> entries) {
> // No-op but has influence on error
> }
> }
> public class MapPair {
> @ProtoField(number = 1)
> MagicKey key;
> @ProtoField(number = 2)
> String value;
> MapPair() {}
> MapPair(Map.Entry<MagicKey, String> entry) {
> this.key = entry.getKey();
> this.value = entry.getValue();
> }
> }
> {code}
> {code:java}
> core/target/generated-test-sources/test-annotations/org/infinispan/stream/MagicKeyStringFilter$___Marshaller89f891e2edf7d63eb676a6effb5379a47edc312b.java:[56,41] incompatible types: org.infinispan.stream.MapPair cannot be converted to java.util.Collection
> {code}
> Generated marshaller code:
> {code:java}
> /**
> * WARNING: Generated code!
> */
> @javax.annotation.Generated(value = "org.infinispan.protostream.annotations.impl.processor.AutoProtoSchemaBuilderAnnotationProcessor",
> comments = "Please do not edit this file!")
> @SuppressWarnings("unchecked")
> public final class MagicKeyStringFilter$___Marshaller89f891e2edf7d63eb676a6effb5379a47edc312b extends org.infinispan.protostream.annotations.impl.GeneratedMarshallerBase implements org.infinispan.protostream.RawProtobufMarshaller<org.infinispan.stream.MagicKeyStringFilter> {
> private org.infinispan.protostream.impl.BaseMarshallerDelegate __md$org$infinispan$stream$MapPair;
>
> @Override
> public Class<org.infinispan.stream.MagicKeyStringFilter> getJavaClass() { return org.infinispan.stream.MagicKeyStringFilter.class; }
>
> @Override
> public String getTypeName() { return "org.infinispan.test.MagicKeyStringFilter"; }
>
> @Override
> public org.infinispan.stream.MagicKeyStringFilter readFrom(org.infinispan.protostream.ImmutableSerializationContext $1, org.infinispan.protostream.RawProtoStreamReader $2) throws java.io.IOException {
> final org.infinispan.stream.MagicKeyStringFilter o = new org.infinispan.stream.MagicKeyStringFilter();
> java.util.ArrayList __c$mapEntries = new java.util.ArrayList();
> boolean done = false;
> while (!done) {
> final int tag = $2.readTag();
> switch (tag) {
> case 0:
> done = true;
> break;
> case 10:
> {
> if (__md$org$infinispan$stream$MapPair == null) __md$org$infinispan$stream$MapPair = ((org.infinispan.protostream.impl.SerializationContextImpl) $1).getMarshallerDelegate(org.infinispan.stream.MapPair.class);
> int length = $2.readRawVarint32();
> int oldLimit = $2.pushLimit(length);
> org.infinispan.stream.MapPair v = (org.infinispan.stream.MapPair) readMessage(__md$org$infinispan$stream$MapPair, $2);
> $2.checkLastTagWas(0);
> $2.popLimit(oldLimit);
> if (__c$mapEntries == null) __c$mapEntries = new java.util.ArrayList();
> __c$mapEntries.add(v);
> }
> break;
> default:
> {
> if (!$2.skipField(tag)) done = true;
> }
> }
> }
> o.setMapEntries(__c$mapEntries);
> return o;
> }
>
> @Override
> public void writeTo(org.infinispan.protostream.ImmutableSerializationContext $1, org.infinispan.protostream.RawProtoStreamWriter $2, org.infinispan.stream.MagicKeyStringFilter $3) throws java.io.IOException {
> final org.infinispan.stream.MagicKeyStringFilter o = (org.infinispan.stream.MagicKeyStringFilter) $3;
> {
> final java.util.Collection c = (org.infinispan.stream.MapPair) o.getMapEntries();
> if (c != null)
> for (java.util.Iterator it = c.iterator(); it.hasNext(); ) {
> final org.infinispan.stream.MapPair v = (org.infinispan.stream.MapPair) it.next();
> {
> if (__md$org$infinispan$stream$MapPair == null) __md$org$infinispan$stream$MapPair = ((org.infinispan.protostream.impl.SerializationContextImpl) $1).getMarshallerDelegate(org.infinispan.stream.MapPair.class);
> writeNestedMessage(__md$org$infinispan$stream$MapPair, $2, 1, v);
> }
> }
> }
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 4 months