[ 
https://issues.apache.org/jira/browse/IGNITE-13160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17218873#comment-17218873
 ] 

Ignite TC Bot commented on IGNITE-13160:
----------------------------------------

{panel:title=Branch: [pull/8378/head] Base: [master] : Possible Blockers 
(4)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}
{color:#d04437}MVCC Cache 7{color} [[tests 0 TIMEOUT , Exit Code 
|https://ci.ignite.apache.org/viewLog.html?buildId=5683000]]

{color:#d04437}MVCC PDS 2{color} [[tests 0 TIMEOUT , Exit Code 
|https://ci.ignite.apache.org/viewLog.html?buildId=5683004]]

{color:#d04437}MVCC Cache 1{color} [[tests 0 TIMEOUT , Exit Code 
|https://ci.ignite.apache.org/viewLog.html?buildId=5682994]]

{color:#d04437}Basic 1{color} [[tests 0 Exit Code 
|https://ci.ignite.apache.org/viewLog.html?buildId=5682939]]

{panel}
{panel:title=Branch: [pull/8378/head] Base: [master] : New Tests 
(14)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#00008b}Platform .NET (Core Linux){color} [[tests 
7|https://ci.ignite.apache.org/viewLog.html?buildId=5682981]]
* {color:#013220}dll: 
QueryEntityMetadataRegistrationTest.TestCacheStartFromCodeRegistersMetaForQueryEntityTypes
 - PASSED{color}
* {color:#013220}dll: 
QueryEntityMetadataRegistrationTest.TestCacheStartFromSpringRegistersMetaForQueryEntityTypes
 - PASSED{color}
* {color:#013220}dll: 
QueryEntityMetadataRegistrationTest.TestCacheStartFromCodeSkipsInvalidQueryEntityTypes
 - PASSED{color}
* {color:#013220}dll: AffinityTest.TestAffinityKeyMappedWithQueryEntity - 
PASSED{color}
* {color:#013220}dll: 
AffinityTest.TestAffinityKeyMappedWithQueryEntitySpringXml - PASSED{color}
* {color:#013220}dll: 
ClientQueryEntityMetadataRegistrationTest.TestCacheStartFromThinClientRegistersMetaForQueryEntityTypes
 - PASSED{color}
* {color:#013220}dll: 
QueryEntityMetadataRegistrationTest.TestCacheStartIgniteConfigurationRegistersMetaForQueryEntityTypes
 - PASSED{color}

{color:#00008b}Platform .NET{color} [[tests 
7|https://ci.ignite.apache.org/viewLog.html?buildId=5682056]]
* {color:#013220}exe: 
AffinityTest.TestAffinityKeyMappedWithQueryEntitySpringXml - PASSED{color}
* {color:#013220}exe: AffinityTest.TestAffinityKeyMappedWithQueryEntity - 
PASSED{color}
* {color:#013220}exe: 
QueryEntityMetadataRegistrationTest.TestCacheStartFromSpringRegistersMetaForQueryEntityTypes
 - PASSED{color}
* {color:#013220}exe: 
QueryEntityMetadataRegistrationTest.TestCacheStartFromCodeSkipsInvalidQueryEntityTypes
 - PASSED{color}
* {color:#013220}exe: 
QueryEntityMetadataRegistrationTest.TestCacheStartFromCodeRegistersMetaForQueryEntityTypes
 - PASSED{color}
* {color:#013220}exe: 
QueryEntityMetadataRegistrationTest.TestCacheStartIgniteConfigurationRegistersMetaForQueryEntityTypes
 - PASSED{color}
* {color:#013220}exe: 
ClientQueryEntityMetadataRegistrationTest.TestCacheStartFromThinClientRegistersMetaForQueryEntityTypes
 - PASSED{color}

{panel}
[TeamCity *--> Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=5683016&buildTypeId=IgniteTests24Java8_RunAll]

> .NET: wrong affinity key registration with AffinityKeyMapped attribute
> ----------------------------------------------------------------------
>
>                 Key: IGNITE-13160
>                 URL: https://issues.apache.org/jira/browse/IGNITE-13160
>             Project: Ignite
>          Issue Type: Bug
>          Components: platforms
>    Affects Versions: 2.8.1
>            Reporter: Alexandr Shapkin
>            Assignee: Pavel Tupitsyn
>            Priority: Major
>             Fix For: 2.10
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> When QueryEntities is set alongside a custom key that utilizes the 
> AffinityKeyMapped attribute, the field won't be taken into account for some 
> reason. When QueryEntities configuration gets removed, all works fine, 
> setting KeyConfiguration manually helps as well. At the same time, the 
> BinaryType registration itself looks fine.
> After the investigation, it turned out that affinityKey field is not being 
> registered on cache registration, and null is being cached instead. Later on 
> Ignite correctly tries to register a custom class as a key, but it's never 
> being updated internally case the real value is already cached.
>  
> NOTE: there is a workaround - you need to specify the key configuration 
> explicitly:
> {code:java}
> cacheConfiguration.KeyConfiguration = new List<CacheKeyConfiguration>(1)
> {
>  //affinityKey should be auto adjusted with Reflection
>  new CacheKeyConfiguration(typeof(MyKey))
> };
>  
> {code}
>  
> Reproducer (add to the AffinityTest.cs):
> {code:java}
>         /// <summary>
>         /// Tests AffinityKeyMapped attribute should map to the same 
> partitions
>         /// for the same field value.
>         /// </summary>
>         [Test]
>         public void TestCustomAffinity()
>         {
>             IIgnite g = Ignition.GetIgnite("grid-0");
>             var cacheCfg = new CacheConfiguration("mycache")
>             {
>                 // Without QueryEntities tests passes.
>                 QueryEntities = new List<QueryEntity>()
>                 {
>                     new QueryEntity(typeof(MyKey), typeof(int))
>                 }
>             };
>             g.GetOrCreateCache<MyKey, int>(cacheCfg);
>             var key1 = new MyKey {Data = "data1", AffinityKey = 1};
>             var key2 = new MyKey {Data = "data2", AffinityKey = 1};
>             ICacheAffinity aff = g.GetAffinity(cacheCfg.Name);
>             Assert.AreEqual(aff.GetPartition(key1), aff.GetPartition(key2));
>         }
>         public class MyKey
>         {
>             [QuerySqlField]
>             public string Data { get; set; }
>             [AffinityKeyMapped]
>             public long AffinityKey { get; set; }
>         }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to