Surkov Aleksandr created IGNITE-13192:
-----------------------------------------

             Summary: Get value after INSERT and put
                 Key: IGNITE-13192
                 URL: https://issues.apache.org/jira/browse/IGNITE-13192
             Project: Ignite
          Issue Type: Bug
            Reporter: Surkov Aleksandr


Reproducer:
{code:java}
@Test
public void testSql() throws Exception {
    try (Ignite ignored = Ignition.start(Config.getServerConfiguration()); 
Ignite ignored2 = Ignition.start(Config.getServerConfiguration());
         IgniteClient client = Ignition.startClient(new 
ClientConfiguration().setBinaryConfiguration(new 
BinaryConfiguration().setCompactFooter(true)).setAddresses(Config.SERVER))
    ) {
        // 1. Create table
        client.query(
            new SqlFieldsQuery(String.format(
                "CREATE TABLE IF NOT EXISTS Person (id INT PRIMARY KEY, name 
VARCHAR) WITH \"VALUE_TYPE=%s,CACHE_NAME=%s\"",
                Person.class.getName(), "PersonCache"
            )).setSchema("PUBLIC")
        ).getAll();


        int key = 1;
        Person val = new Person(key, "Person " + key);
        
        // 2. INSERT value to cache
        client.query(new SqlFieldsQuery("INSERT INTO Person(id, name) VALUES(?, 
?)")
            .setArgs(val.getId(), val.getName())
            .setSchema("PUBLIC")
        )
        .getAll();
        
        // 4. Execute put()
        // Without this line, there will be no exception
        client.getOrCreateCache("PersonCache").put(2, val);

        // 5. Execute get(). There will be an exception: 
org.apache.ignite.binary.BinaryObjectException: Cannot find metadata for object 
with compact footer
        assertNotNull(client.getOrCreateCache("PersonCache").get(1));
    }
}{code}



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

Reply via email to