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

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

{panel:title=Branch: [pull/13583/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/13583/head] Base: [master] : New Tests 
(28)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#00008b}Queries 6{color} [[tests 
25|https://ci2.ignite.apache.org/viewLog.html?buildId=9460549]]
* {color:#013220}IgniteBinaryCacheQueryTestSuite6: 
CacheConfigurationQueryEntityTest.testSetQueryEntitiesAfterSetIndexedTypesFails 
- PASSED{color}
* {color:#013220}IgniteBinaryCacheQueryTestSuite6: 
CacheConfigurationQueryEntityTest.testSetQueryEntitiesCanBeUsedAfterClearQueryEntities
 - PASSED{color}
* {color:#013220}IgniteBinaryCacheQueryTestSuite6: 
CacheConfigurationQueryEntityTest.testRepeatedSetQueryEntitiesReplacesEntityWithSameValueType
 - PASSED{color}
* {color:#013220}IgniteBinaryCacheQueryTestSuite6: 
CacheConfigurationQueryEntityTest.testCreateTableConfiguresQueryEntities - 
PASSED{color}
* {color:#013220}IgniteBinaryCacheQueryTestSuite6: 
CacheConfigurationQueryEntityTest.testClearQueryEntitiesDoesNotAllowSwitchFromQueryEntities
 - PASSED{color}
* {color:#013220}IgniteBinaryCacheQueryTestSuite6: 
CacheConfigurationQueryEntityTest.testSetIndexedTypesCanBeUsedAfterClearQueryEntities
 - PASSED{color}
* {color:#013220}IgniteBinaryCacheQueryTestSuite6: 
CacheConfigurationQueryEntityTest.testCacheConfiguredWithIndexedTypesStartsSuccessfully
 - PASSED{color}
* {color:#013220}IgniteBinaryCacheQueryTestSuite6: 
CacheConfigurationQueryEntityTest.testNodeWithIndexedTypesConfigurationJoinsCluster
 - PASSED{color}
* {color:#013220}IgniteBinaryCacheQueryTestSuite6: 
CacheConfigurationQueryEntityTest.testRepeatedSetQueryEntitiesReplacesPreviousEntities
 - PASSED{color}
* {color:#013220}IgniteBinaryCacheQueryTestSuite6: 
CacheConfigurationQueryEntityTest.testSchemaAddPreservesQueryEntityExMetadata - 
PASSED{color}
* {color:#013220}IgniteBinaryCacheQueryTestSuite6: 
CacheConfigurationQueryEntityTest.testSetIndexedTypesAfterSetQueryEntitiesFails 
- PASSED{color}
... and 14 new tests

{color:#00008b}Cache 13{color} [[tests 
1|https://ci2.ignite.apache.org/viewLog.html?buildId=9460430]]
* {color:#013220}IgniteCacheTestSuite13: 
SystemViewCacheExpiryPolicyTest.testCacheViewExpiryPolicy[factory=javax.cache.configuration.FactoryBuilder$SingletonFactory@3c7b137a,
 actual=SingletonFactory [expiryPlc=EternalExpiryPolicy [create=ETERNAL]]] - 
PASSED{color}

{color:#00008b}Spring{color} [[tests 
2|https://ci2.ignite.apache.org/viewLog.html?buildId=9460507]]
* {color:#013220}IgniteSpringTestSuite: 
CacheConfigurationQueryEntityXmlTest.testIndexedTypesAfterQueryEntitiesFails - 
PASSED{color}
* {color:#013220}IgniteSpringTestSuite: 
CacheConfigurationQueryEntityXmlTest.testQueryEntitiesAfterIndexedTypesFails - 
PASSED{color}

{panel}
[TeamCity *--> Run :: All* 
Results|https://ci2.ignite.apache.org/viewLog.html?buildId=9460568&buildTypeId=IgniteTests24Java8_RunAll]
{color:#ffffff}tcbot-analysis-comment chainBuildId=9460568 
rerunBuildIds=9461225,9461227,9461229,9461231{color}

> Disallow mixing setIndexedTypes and setQueryEntities and use last-call-wins 
> semantics
> -------------------------------------------------------------------------------------
>
>                 Key: IGNITE-28907
>                 URL: https://issues.apache.org/jira/browse/IGNITE-28907
>             Project: Ignite
>          Issue Type: Task
>    Affects Versions: 2.18
>            Reporter: Oleg Valuyskiy
>            Assignee: Oleg Valuyskiy
>            Priority: Major
>              Labels: ise
>         Attachments: MixedIndexConfigurationTest.patch
>
>          Time Spent: 6h 40m
>  Remaining Estimate: 0h
>
> CacheConfiguration currently handles repeated and mixed calls to 
> setIndexedTypes() and setQueryEntities() inconsistently:
>  * Mixing the two APIs can silently discard query entity metadata, including 
> explicitly configured indexes.
>  * Repeated setQueryEntities() calls append entities but silently skip those 
> whose value type is already present.
>  * setIndexedTypes() contains a guard intended to reject repeated calls 
> rather than replace the previous configuration.
> Reproducer: [^MixedIndexConfigurationTest.patch]
> It is suggested to introduce an explicit configuration contract:
>  * Disallow mixing setIndexedTypes() and setQueryEntities() on the same 
> configuration instance. Throw CacheException regardless of the call order.
>  * Repeated setIndexedTypes() calls replace the previously configured indexed 
> types and query entities.
>  * Repeated setQueryEntities() calls replace the entire query entities 
> collection.
>  * Passing an empty array or null to setIndexedTypes() clears indexed types 
> and query entities. Passing an empty collection to setQueryEntities() clears 
> query entities.
>  * Empty calls still establish the configuration API. clearQueryEntities() 
> does not reset that choice.
>  * Affinity key configurations derived by setIndexedTypes() replace existing 
> mappings for the same types while preserving mappings for other types. Empty 
> calls leave key configurations unchanged.
> Internal query entity updates during cache initialization and schema 
> synchronization must use a separate replacement mechanism that does not 
> change the configuration API marker and preserves QueryEntityEx metadata.
> *This intentionally changes the public configuration contract.* Applications 
> that mix the two APIs must use a single API, and applications that rely on 
> additive setQueryEntities() calls must provide the complete collection in the 
> final call.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to