[infinispan-issues] [JBoss JIRA] (IPROTO-100) Annotated Collection Class Method cannot be converted to Collection
Ryan Emerson (Jira)
issues at jboss.org
Thu Jun 27 11:05:00 EDT 2019
Ryan Emerson created IPROTO-100:
-----------------------------------
Summary: 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
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)
More information about the infinispan-issues
mailing list