Pavel Tupitsyn created IGNITE-13957:
---------------------------------------

             Summary: GridQueryProcessor.validateKeyAndValue attempts to 
deserialize key and value when QueryEntity.fields is not set
                 Key: IGNITE-13957
                 URL: https://issues.apache.org/jira/browse/IGNITE-13957
             Project: Ignite
          Issue Type: Bug
          Components: sql
    Affects Versions: 2.9.1, 2.9
            Reporter: Pavel Tupitsyn
            Assignee: Pavel Tupitsyn
             Fix For: 2.10


{{GridQueryProcessor.validateKeyAndValue}} attempts to deserialize cache key 
and value on {{put}} when {{QueryEntity.fields}} is not set, and fails when 
corresponding classes can't be found.

* The bug was introduced in 2.9
* There is no problem when some query entity fields are defined

Reproducer in .NET (TODO: add both .NET and Java tests for this)
{code}
// CacheQueriesCodeConfigurationTest

        /// <summary>
        /// Tests query entity validation when no <see 
cref="QuerySqlFieldAttribute"/> has been set.
        /// </summary>
        [Test]
        public void TestMissingQueryAttributes()
        {
            using (var ignite = 
Ignition.Start(TestUtils.GetTestConfiguration()))
            {
                var cfg = new CacheConfiguration(
                    TestUtils.TestName,
                    new QueryEntity(typeof(string), 
typeof(MissingAttributesTest)));

                var cache = ignite.GetOrCreateCache<string, 
MissingAttributesTest>(cfg);

                cache["1"] = new MissingAttributesTest {Foo = "Bar"};
            }
        }

        /// <summary>
        /// Class without any <see cref="QuerySqlFieldAttribute"/> attributes.
        /// </summary>
        private class MissingAttributesTest
        {
            /** */
            public string Foo { get; set; }
        }
{code}



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

Reply via email to