[JBoss JIRA] (IPROTO-103) Not possible to have @ProtoField of type List<byte[]>
by Pedro Zapata Fernandez (Jira)
[ https://issues.jboss.org/browse/IPROTO-103?page=com.atlassian.jira.plugin... ]
Pedro Zapata Fernandez updated IPROTO-103:
------------------------------------------
Sprint: DataGrid Sprint #31, DataGrid Sprint #32, DataGrid Sprint #33, DataGrid Sprint #34 (was: DataGrid Sprint #31, DataGrid Sprint #32, DataGrid Sprint #33)
> 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, 4.3.0.Final
>
>
> {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.13.5#713005)
6 years, 7 months
[JBoss JIRA] (IPROTO-94) Marshalling of immutable objects
by Pedro Zapata Fernandez (Jira)
[ https://issues.jboss.org/browse/IPROTO-94?page=com.atlassian.jira.plugin.... ]
Pedro Zapata Fernandez updated IPROTO-94:
-----------------------------------------
Sprint: DataGrid Sprint #31, DataGrid Sprint #32, DataGrid Sprint #33, DataGrid Sprint #34 (was: DataGrid Sprint #31, DataGrid Sprint #32, DataGrid Sprint #33)
> Marshalling of immutable objects
> --------------------------------
>
> Key: IPROTO-94
> URL: https://issues.jboss.org/browse/IPROTO-94
> Project: Infinispan ProtoStream
> Issue Type: Enhancement
> Reporter: Nistor Adrian
> Assignee: Nistor Adrian
> Priority: Major
> Fix For: 4.3.0.Alpha8, 4.3.0.Final
>
>
> These typically have final fields, may have getters for them but do not have setters. All fields should be read in advance and passed all at once to a constructor.
--
This message was sent by Atlassian Jira
(v7.13.5#713005)
6 years, 7 months
[JBoss JIRA] (IPROTO-100) Annotated Collection Class Method cannot be converted to Collection
by Pedro Zapata Fernandez (Jira)
[ https://issues.jboss.org/browse/IPROTO-100?page=com.atlassian.jira.plugin... ]
Pedro Zapata Fernandez updated IPROTO-100:
------------------------------------------
Sprint: DataGrid Sprint #30, DataGrid Sprint #31, DataGrid Sprint #32, DataGrid Sprint #33, DataGrid Sprint #34 (was: DataGrid Sprint #30, DataGrid Sprint #31, DataGrid Sprint #32, DataGrid Sprint #33)
> 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.13.5#713005)
6 years, 7 months
[JBoss JIRA] (IPROTO-109) AutoProtoSchemaBuilder fails due to mismatched @ProtoFactory signature during incremental compilation
by Pedro Zapata Fernandez (Jira)
[ https://issues.jboss.org/browse/IPROTO-109?page=com.atlassian.jira.plugin... ]
Pedro Zapata Fernandez updated IPROTO-109:
------------------------------------------
Sprint: DataGrid Sprint #32, DataGrid Sprint #33, DataGrid Sprint #34 (was: DataGrid Sprint #32, DataGrid Sprint #33)
> AutoProtoSchemaBuilder fails due to mismatched @ProtoFactory signature during incremental compilation
> -----------------------------------------------------------------------------------------------------
>
> Key: IPROTO-109
> URL: https://issues.jboss.org/browse/IPROTO-109
> Project: Infinispan ProtoStream
> Issue Type: Bug
> Affects Versions: 4.3.0.Alpha10
> Reporter: Nistor Adrian
> Assignee: Nistor Adrian
> Priority: Major
> Fix For: 4.3.0.Alpha11
>
>
> {noformat}
> Error:(29, 1) java: org.infinispan.protostream.annotations.ProtoSchemaBuilderException: @ProtoFactory annotated static method or constructor signature mismatch. The parameter 'numericVersion' does not match the field definition: EmbeddedExpirableMetadata(long,long,org.infinispan.container.versioning.NumericVersion,org.infinispan.container.versioning.SimpleClusteredVersion)
> at org.infinispan.protostream.annotations.impl.ProtoMessageTypeMetadata.scanMemberAnnotations(ProtoMessageTypeMetadata.java:213)
> at org.infinispan.protostream.annotations.impl.BaseProtoSchemaGenerator.generateAndRegister(BaseProtoSchemaGenerator.java:116)
> at org.infinispan.protostream.annotations.impl.processor.AutoProtoSchemaBuilderAnnotationProcessor.processClass(AutoProtoSchemaBuilderAnnotationProcessor.java:287)
> at org.infinispan.protostream.annotations.impl.processor.AutoProtoSchemaBuilderAnnotationProcessor.processElement(AutoProtoSchemaBuilderAnnotationProcessor.java:218)
> at org.infinispan.protostream.annotations.impl.processor.AutoProtoSchemaBuilderAnnotationProcessor.processDependencies(AutoProtoSchemaBuilderAnnotationProcessor.java:344)
> at org.infinispan.protostream.annotations.impl.processor.AutoProtoSchemaBuilderAnnotationProcessor.processClass(AutoProtoSchemaBuilderAnnotationProcessor.java:279)
> at org.infinispan.protostream.annotations.impl.processor.AutoProtoSchemaBuilderAnnotationProcessor.processElement(AutoProtoSchemaBuilderAnnotationProcessor.java:218)
> at org.infinispan.protostream.annotations.impl.processor.AutoProtoSchemaBuilderAnnotationProcessor.process(AutoProtoSchemaBuilderAnnotationProcessor.java:171)
> at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
> at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
> at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
> at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
> at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
> at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
> at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
> at com.sun.tools.javac.main.Main.compile(Main.java:523)
> at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)
> at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)
> at org.jetbrains.jps.javac.JavacMain.compile(JavacMain.java:195)
> at org.jetbrains.jps.incremental.java.JavaBuilder.compileJava(JavaBuilder.java:460)
> at org.jetbrains.jps.incremental.java.JavaBuilder.compile(JavaBuilder.java:330)
> at org.jetbrains.jps.incremental.java.JavaBuilder.doBuild(JavaBuilder.java:255)
> at org.jetbrains.jps.incremental.java.JavaBuilder.build(JavaBuilder.java:213)
> at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1324)
> at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:1004)
> at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1071)
> at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:965)
> at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:794)
> at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:376)
> at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:178)
> at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:139)
> at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:288)
> at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:121)
> at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:228)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> {noformat}
--
This message was sent by Atlassian Jira
(v7.13.5#713005)
6 years, 7 months
[JBoss JIRA] (IPROTO-108) AutoProtoSchemaBuilder processor throws exceptions releated to primitive types not being found
by Pedro Zapata Fernandez (Jira)
[ https://issues.jboss.org/browse/IPROTO-108?page=com.atlassian.jira.plugin... ]
Pedro Zapata Fernandez updated IPROTO-108:
------------------------------------------
Sprint: DataGrid Sprint #32, DataGrid Sprint #33, DataGrid Sprint #34 (was: DataGrid Sprint #32, DataGrid Sprint #33)
> AutoProtoSchemaBuilder processor throws exceptions releated to primitive types not being found
> ----------------------------------------------------------------------------------------------
>
> Key: IPROTO-108
> URL: https://issues.jboss.org/browse/IPROTO-108
> Project: Infinispan ProtoStream
> Issue Type: Bug
> Affects Versions: 4.3.0.Alpha9
> Reporter: Nistor Adrian
> Assignee: Nistor Adrian
> Priority: Major
> Fix For: 4.3.0.Alpha10
>
>
> This seems to be caused by some oddity in javax.lang.model's Elements.getTypeElement not being able to find primitve types (by design). It looks like primitives should to be looked up via Types.getPrimitiveType.
> {code}
> Error:java: @AutoProtoSchemaBuilder processor threw a fatal exception: java.lang.RuntimeException: Type not found : long
> at org.infinispan.protostream.annotations.impl.processor.types.MirrorClassFactory$MirrorClass.isAssignableTo(MirrorClassFactory.java:541)
> at org.infinispan.protostream.annotations.impl.ProtoMessageTypeMetadata.scanMemberAnnotations(ProtoMessageTypeMetadata.java:212)
> at org.infinispan.protostream.annotations.impl.BaseProtoSchemaGenerator.generateAndRegister(BaseProtoSchemaGenerator.java:116)
> at org.infinispan.protostream.annotations.impl.processor.AutoProtoSchemaBuilderAnnotationProcessor.processClass(AutoProtoSchemaBuilderAnnotationProcessor.java:287)
> at org.infinispan.protostream.annotations.impl.processor.AutoProtoSchemaBuilderAnnotationProcessor.processElement(AutoProtoSchemaBuilderAnnotationProcessor.java:218)
> at org.infinispan.protostream.annotations.impl.processor.AutoProtoSchemaBuilderAnnotationProcessor.processDependencies(AutoProtoSchemaBuilderAnnotationProcessor.java:344)
> at org.infinispan.protostream.annotations.impl.processor.AutoProtoSchemaBuilderAnnotationProcessor.processClass(AutoProtoSchemaBuilderAnnotationProcessor.java:279)
> at org.infinispan.protostream.annotations.impl.processor.AutoProtoSchemaBuilderAnnotationProcessor.processElement(AutoProtoSchemaBuilderAnnotationProcessor.java:218)
> at org.infinispan.protostream.annotations.impl.processor.AutoProtoSchemaBuilderAnnotationProcessor.process(AutoProtoSchemaBuilderAnnotationProcessor.java:171)
> at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
> at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
> at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
> at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
> at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
> at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
> at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
> at com.sun.tools.javac.main.Main.compile(Main.java:523)
> at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)
> at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)
> at org.jetbrains.jps.javac.JavacMain.compile(JavacMain.java:195)
> at org.jetbrains.jps.incremental.java.JavaBuilder.compileJava(JavaBuilder.java:460)
> at org.jetbrains.jps.incremental.java.JavaBuilder.compile(JavaBuilder.java:330)
> at org.jetbrains.jps.incremental.java.JavaBuilder.doBuild(JavaBuilder.java:255)
> at org.jetbrains.jps.incremental.java.JavaBuilder.build(JavaBuilder.java:213)
> at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1324)
> at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:1004)
> at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1071)
> at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:965)
> at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:794)
> at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:376)
> at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:178)
> at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:139)
> at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:288)
> at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:121)
> at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:228)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> {code}
--
This message was sent by Atlassian Jira
(v7.13.5#713005)
6 years, 7 months