[JBoss JIRA] (IPROTO-101) Enum values with same name in different classes clash
by Nistor Adrian (Jira)
[ https://issues.jboss.org/browse/IPROTO-101?page=com.atlassian.jira.plugin... ]
Nistor Adrian updated IPROTO-101:
---------------------------------
Sprint: DataGrid Sprint #30, DataGrid Sprint #31 (was: DataGrid Sprint #30)
> Enum values with same name in different classes clash
> -----------------------------------------------------
>
> Key: IPROTO-101
> URL: https://issues.jboss.org/browse/IPROTO-101
> Project: Infinispan ProtoStream
> Issue Type: Bug
> Affects Versions: 4.3.0.Alpha6
> Reporter: Ryan Emerson
> Assignee: Nistor Adrian
> Priority: Major
>
> {code:java}
> @ProtoName("TakeSiteOfflineResponse")
> public enum TakeSiteOfflineResponse {
> @ProtoEnumValue(number = 1)
> NO_SUCH_SITE,
> @ProtoEnumValue(number = 2)
> ALREADY_OFFLINE,
> @ProtoEnumValue(number = 3)
> TAKEN_OFFLINE
> }
> @ProtoName("BringSiteOnlineResponse")
> public enum BringSiteOnlineResponse {
> @ProtoEnumValue(number = 1)
> NO_SUCH_SITE,
> @ProtoEnumValue(number = 2)
> ALREADY_ONLINE,
> @ProtoEnumValue(number = 3)
> BROUGHT_ONLINE
> }
> {code}
> Results in:
> {code:java}
> Enum value org.infinispan.test.TakeSiteOfflineResponse.NO_SUCH_SITE clashes with enum value org.infinispan.test.BringSiteOnlineResponse.NO_SUCH_SITE
> {code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 5 months
[JBoss JIRA] (IPROTO-103) Not possible to have @ProtoField of type List<byte[]>
by Nistor Adrian (Jira)
[ https://issues.jboss.org/browse/IPROTO-103?page=com.atlassian.jira.plugin... ]
Nistor Adrian updated IPROTO-103:
---------------------------------
Sprint: DataGrid Sprint #31
> Not possible to have @ProtoField of type List<byte[]>
> -----------------------------------------------------
>
> Key: IPROTO-103
> URL: https://issues.jboss.org/browse/IPROTO-103
> Project: Infinispan ProtoStream
> Issue Type: Bug
> Affects Versions: 4.3.0.Alpha8
> Reporter: Ryan Emerson
> Assignee: Nistor Adrian
> Priority: Major
> Fix For: 4.3.0.Alpha9
>
>
> {code:java}
> static final class ExpiryBucket {
> @ProtoField(number = 1, collectionImplementation = ArrayList.class)
> List<byte[]> entries;
> ExpiryBucket() {}
> ExpiryBucket(byte[]... entries) {
> this.entries = Arrays.asList(entries);
> }
> }
> {code}
> Error:
> {code:java}
> PersistenceContextInitializer.java:[19,1] org.infinispan.protostream.annotations.ProtoSchemaBuilderException: The class byte[] must be instantiable using an accessible no-argument constructor.
> {code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 5 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... ]
Nistor Adrian updated IPROTO-100:
---------------------------------
Sprint: DataGrid Sprint #30, DataGrid Sprint #31 (was: DataGrid Sprint #30)
> 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
>
>
> 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, 5 months
[JBoss JIRA] (IPROTO-105) Accept annotated 'getters' that are not named according to the javabeans standard
by Nistor Adrian (Jira)
[ https://issues.jboss.org/browse/IPROTO-105?page=com.atlassian.jira.plugin... ]
Nistor Adrian updated IPROTO-105:
---------------------------------
Description:
While 'getLifespan()' is an accepted getter for 'lifespan' property, 'lifespan()' is not, but it would be very useful to add support for this case, also for such setter.
See infinispan's EmbeddedLifespanExpirableMetadata
was:
While 'getLifespan()' is and accepted getter for 'lifespan', 'lifespan()' is not, but it would be very useful to add support for this case.
See infinispan's EmbeddedLifespanExpirableMetadata
> Accept annotated 'getters' that are not named according to the javabeans standard
> ---------------------------------------------------------------------------------
>
> Key: IPROTO-105
> URL: https://issues.jboss.org/browse/IPROTO-105
> Project: Infinispan ProtoStream
> Issue Type: Enhancement
> Reporter: Nistor Adrian
> Assignee: Nistor Adrian
> Priority: Major
> Fix For: 4.3.0.Alpha9, 4.3.0.Final
>
>
> While 'getLifespan()' is an accepted getter for 'lifespan' property, 'lifespan()' is not, but it would be very useful to add support for this case, also for such setter.
> See infinispan's EmbeddedLifespanExpirableMetadata
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
5 years, 5 months