You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Pavel Tupitsyn (Jira)" <ji...@apache.org> on 2021/01/05 08:28:00 UTC
[jira] [Created] (IGNITE-13957)
GridQueryProcessor.validateKeyAndValue attempts to deserialize key and
value when QueryEntity.fields is not set
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)