[
https://issues.apache.org/jira/browse/IGNITE-28907?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18123583#comment-18123583
]
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
(27)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#00008b}Queries 6{color} [[tests
25|https://ci2.ignite.apache.org/viewLog.html?buildId=9389382]]
* {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}Spring{color} [[tests
2|https://ci2.ignite.apache.org/viewLog.html?buildId=9387234]]
* {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=9387293&buildTypeId=IgniteTests24Java8_RunAll]
{color:#ffffff}tcbot-analysis-comment chainBuildId=9387293
rerunBuildIds=9389382,9389384,9389386{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
> Reporter: Oleg Valuyskiy
> Assignee: Oleg Valuyskiy
> Priority: Major
> Labels: ise
> Attachments: MixedIndexConfigurationTest.patch
>
> Time Spent: 5h 20m
> 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
(v8.20.10#820010)