In general, Ignite is tolerant to changes within your types, adding fields, removing them. But field type change is a breaking change.
You have to use a new field name. Other Ignite experts may give advice on how to update schema, I'm a bit out of the loop on this. Thanks, Pavel On Wed, May 16, 2018 at 7:06 AM, Raymond Wilson <[email protected]> wrote: > I just changed a field in a class from a long to a Guid. > > > > The class in question is marked [Serializable] and is passed to Ignite > compute functions as a part of an argument to the compute function and is > not saved to the persistent store. > > > > When I run the modified code against an Ignite grid with a persistent data > store I get the following error. Is this intentional? How should type > evolution ephemeral constructs handed to compute functions in Ignite be > handled? > > > > > > Exception: System.AggregateException: One or more errors occurred. ---> > Apache.Ignite.Core.Binary.BinaryObjectException: Binary type has > different field types [typeName=VSS.TRex.Filters.CellPassAttributeFilter, > fieldName=ElevationRangeDesignID, fieldTypeName1=long, > fieldTypeName2=UUID] ---> Apache.Ignite.Core.Common.JavaException: class > org.apache.ignite.binary.BinaryObjectException: Binary type has different > field types [typeName=VSS.TRex.Filters.CellPassAttributeFilter, > fieldName=ElevationRangeDesignID, > fieldTypeName1=long, fieldTypeName2=UUID] > > at org.apache.ignite.internal.binary.BinaryUtils. > mergeMetadata(BinaryUtils.java:1033) > > at org.apache.ignite.internal.processors.cache.binary. > CacheObjectBinaryProcessorImpl.addMeta(CacheObjectBinaryProcessorImpl > .java:444) > > at org.apache.ignite.internal.processors.cache.binary. > CacheObjectBinaryProcessorImpl$2.addMeta(CacheObjectBinaryProcessorImpl > .java:186) > > at org.apache.ignite.internal.binary.BinaryContext. > updateMetadata(BinaryContext.java:1303) > > at org.apache.ignite.internal.processors.platform. > PlatformContextImpl.processMetadata(PlatformContextImpl.java:336) > > at org.apache.ignite.internal.processors.platform.binary. > PlatformBinaryProcessor.processInStreamOutLong( > PlatformBinaryProcessor.java:70) > > at org.apache.ignite.internal.processors.platform. > PlatformAbstractTarget.processInStreamOutLong(PlatformAbstractTarget.java: > 87) > > at org.apache.ignite.internal.processors.platform. > PlatformTargetProxyImpl.inStreamOutLong(PlatformTargetProxyImpl.java:67) > > > > > > at Apache.Ignite.Core.Impl.Unmanaged.Jni.Env.ExceptionCheck() > > at Apache.Ignite.Core.Impl.Unmanaged.Jni.Env.CallLongMethod(GlobalRef > obj, IntPtr methodId, Int64* argsPtr) > > at Apache.Ignite.Core.Impl.Unmanaged.UnmanagedUtils. > TargetInStreamOutLong(GlobalRef target, Int32 opType, Int64 memPtr) > > at Apache.Ignite.Core.Impl.PlatformJniTarget.InStreamOutLong(Int32 > type, Action`1 writeAction) > > --- End of inner exception stack trace --- > > Etc….. > > > > Thanks, > > Raymond. >
