Hi Charlin,

I've filed a bug [1]

However, it looks like [QuerySqlField] attributes are missing on
TestModel29WithICloneable properties.
To make your model queryable with SQL/LINQ, make sure to mark some or all
properties like this:

public class TestModel29WithICloneable : ICloneable, IBinarizable
{
        [QuerySqlField]
        public string TestField1 { get; set; }

        [QuerySqlField]
        public string TestField2 { get; set; }

        [QuerySqlField]
        public string TestField3 { get; set; }
...
}

This will get rid of the exception (which is still a bug, but for a weird
use case when no SQL fields are defined).

Thanks,
Pavel

[1] https://issues.apache.org/jira/browse/IGNITE-13957

On Tue, Jan 5, 2021 at 10:28 AM Ilya Kazakov <kazakov.i...@gmail.com> wrote:

> Hello, Charlin!
>
> Try to enable peer class loading:
> https://ignite.apache.org/docs/latest/code-deployment/peer-class-loading
>
> ----------------------
> Ilya Kazakov
>
> вт, 5 янв. 2021 г. в 14:52, Charlin S <charli...@hotelhub.com>:
>
>> Hi,
>>
>> i'm getting exception on when a new record is added, which was working
>> till ignite 2.8.1
>> This issue seems to be with Ignite 2.9.0 and Ignite 2.9.1
>> The c# code is below:
>> void Main()
>> {
>> A a = new A();
>> }
>>
>> public class A
>> {
>> public A()
>> {
>>
>>  IgniteConfiguration igniteGridIg = new IgniteConfiguration();
>>             igniteGridIg.AutoGenerateIgniteInstanceName = true;
>>             igniteGridIg.IgniteHome =
>> @"D:\Software\apache-ignite-2.9.1-bin";
>>             igniteGridIg.SpringConfigUrl =
>> Path.Combine(@"D:\IgniteConfig\",
>> "common_dynamiccache_client_config_2.9.1.xml");
>>             igniteGridIg.ConsistentId =
>> Guid.NewGuid().ToString().ToUpper();
>>
>> IIgnite StaticGrid_Dev = Ignition.Start(igniteGridIg);
>> TestModel29WithICloneable model = new TestModel29WithICloneable();
>>
>> model.TestField1 = "11";
>> model.TestField2 = "22";
>>
>> ICache<string, TestModel29WithICloneable>
>> TestModel29WithICloneableICache=null;
>>            CacheConfiguration cgTest = new
>> CacheConfiguration("TestModel29WithICloneable", new
>> QueryEntity(typeof(string), typeof(TestModel29WithICloneable)));
>>                         cgTest.CopyOnRead = false;
>>                         cgTest.EagerTtl = true;
>>                         cgTest.Backups = 1;
>>
>> var cacheName = StaticGrid_Dev.GetOrCreateCache<string,
>> object>(cgTest).WithExpiryPolicy(new ExpiryPolicy(
>>                              TimeSpan.FromSeconds(3600),
>>                              TimeSpan.FromSeconds(3600),
>>                              TimeSpan.FromSeconds(3600)
>>                              ));
>>
>> cacheName.Put("TestModel29WithICloneable:Test|0100010test2", model);
>>
>> //Console.Write(cacheName);
>> Ignition.StopAll(true);
>> }
>> }
>>
>>
>> Model class:
>> public class TestModel29WithICloneable : ICloneable, IBinarizable
>>     {
>>         public TestModel29WithICloneable Copy()
>>         {
>>             return (TestModel29WithICloneable)this.MemberwiseClone();
>>         }
>>
>>         public object Clone()
>>         {
>>             var clone = this.MemberwiseClone();
>>             return clone;
>>         }
>>         public string TestField1 { get; set; }
>>         public string TestField2 { get; set; }
>>         public string TestField3 { get; set; }
>>
>>         public void ReadBinary(IBinaryReader reader)
>>         {
>>             if (reader != null)
>>             {
>>                 TestField1 = reader.ReadString("testfield1");
>>                 TestField2 = reader.ReadString("testfield2");
>>                 TestField3 = reader.ReadString("testfield3");
>>             }
>>         }
>>
>>         public void WriteBinary(IBinaryWriter writer)
>>         {
>>             if (writer != null)
>>             {
>>                 writer.WriteString("testfield1", TestField1);
>>                 writer.WriteString("testfield2", TestField2);
>>                 writer.WriteString("testfield3", TestField3);
>>             }
>>         }
>>     }
>>
>> Result :
>> javax.cache.CacheException: class
>> org.apache.ignite.IgniteCheckedException: Requesting mapping from grid
>> failed for [platformId=0, typeId=1876507903]
>>   at
>> org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1270)
>>   at
>> org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.cacheException(IgniteCacheProxyImpl.java:2083)
>>   at
>> org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.put(IgniteCacheProxyImpl.java:1319)
>>   at
>> org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.put(GatewayProtectedCacheProxy.java:856)
>>   at
>> org.apache.ignite.internal.processors.platform.cache.PlatformCache.processInStreamOutLong(PlatformCache.java:839)
>>   at
>> org.apache.ignite.internal.processors.platform.PlatformTargetProxyImpl.inStreamOutLong(PlatformTargetProxyImpl.java:67)
>> Caused by: class org.apache.ignite.IgniteCheckedException: Requesting
>> mapping from grid failed for [platformId=0, typeId=1876507903]
>>   at
>> org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:7563)
>>   at
>> org.apache.ignite.internal.processors.cache.GridCacheContext.validateKeyAndValue(GridCacheContext.java:1910)
>>   at
>> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture.mapSingleUpdate(GridNearAtomicSingleUpdateFuture.java:555)
>>   at
>> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture.map(GridNearAtomicSingleUpdateFuture.java:457)
>>   at
>> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture.mapOnTopology(GridNearAtomicSingleUpdateFuture.java:446)
>>   at
>> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.map(GridNearAtomicAbstractUpdateFuture.java:249)
>>   at
>> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.update0(GridDhtAtomicCache.java:1178)
>>   at
>> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.put0(GridDhtAtomicCache.java:626)
>>   at
>> org.apache.ignite.internal.processors.cache.GridCacheAdapter.put(GridCacheAdapter.java:2567)
>>   at
>> org.apache.ignite.internal.processors.cache.GridCacheAdapter.put(GridCacheAdapter.java:2544)
>>   at
>> org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.put(IgniteCacheProxyImpl.java:1316)
>>   ... 3 more
>> Caused by: class org.apache.ignite.binary.BinaryInvalidTypeException:
>> Requesting mapping from grid failed for [platformId=0, typeId=1876507903]
>>   at
>> org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:689)
>>   at
>> org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1757)
>>   at
>> org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1716)
>>   at
>> org.apache.ignite.internal.binary.BinaryObjectImpl.deserializeValue(BinaryObjectImpl.java:796)
>>   at
>> org.apache.ignite.internal.binary.BinaryObjectImpl.value(BinaryObjectImpl.java:142)
>>   at
>> org.apache.ignite.internal.processors.query.QueryTypeDescriptorImpl.validateProps(QueryTypeDescriptorImpl.java:613)
>>   at
>> org.apache.ignite.internal.processors.query.QueryTypeDescriptorImpl.validateKeyAndValue(QueryTypeDescriptorImpl.java:587)
>>   at
>> org.apache.ignite.internal.processors.query.GridQueryProcessor.validateKeyAndValue(GridQueryProcessor.java:3552)
>>   at
>> org.apache.ignite.internal.processors.cache.GridCacheContext.validateKeyAndValue(GridCacheContext.java:1907)
>>   ... 12 more
>> Caused by: java.lang.ClassNotFoundException: Requesting mapping from grid
>> failed for [platformId=0, typeId=1876507903]
>>   at
>> org.apache.ignite.internal.MarshallerContextImpl.getClassName(MarshallerContextImpl.java:429)
>>   at
>> org.apache.ignite.internal.MarshallerContextImpl.getClassName(MarshallerContextImpl.java:384)
>>   at
>> org.apache.ignite.internal.MarshallerContextImpl.getClass(MarshallerContextImpl.java:371)
>>   at
>> org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:680)
>>
>>
>> Regards
>> Charlin
>>
>

Reply via email to