[ 
https://issues.apache.org/jira/browse/IGNITE-19705?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Artiukhov updated IGNITE-19705:
------------------------------------
    Description: 
Apache Ignite 3, rev. 44c97c00654e076031cf92631f3a7c4439458570

Steps:
- start a node
- create the following table: {{CREATE TABLE testTable (id INT PRIMARY KEY, 
counter BIGINT)}}
- insert a row using a PreparedStatement, use {{setInt()}} to set a value for 
BIGINT column
- update a row using a PreparedStatement, use {{setInt()}} to set a value for 
BIGINT column

Expected result:
- a row is added and then updated

Actual result:
- a row is added, but UPDATE throws a {{ClassCastException}}

Reproducer:
{code:java}
@Test
public void castIntegerToLongTest() throws SQLException {
    String createTableDdl = "CREATE TABLE testTable (id INT PRIMARY KEY, 
counter BIGINT)";
    log.info("Execute: {}", createTableDdl);
    statement.execute(createTableDdl);

    // PASSES
    try (PreparedStatement preparedStatement =
            connection.prepareStatement("INSERT INTO testTable (id, counter) 
VALUES (?, ?)")) {
        preparedStatement.setInt(1, 1);
        preparedStatement.setInt(2, 10);

        assertEquals(1, preparedStatement.executeUpdate());
    }

    // FAILS
    try (PreparedStatement preparedStatement =
            connection.prepareStatement("UPDATE testTable SET counter = ? WHERE 
id = 1")) {
        preparedStatement.setInt(1, 20);

        assertEquals(1, preparedStatement.executeUpdate());
    }
}
{code}


The exception in the node's log:
{noformat}
2023-06-12 11:56:09:009 +0300 
[INFO][%TypesCastTest_cluster_0%vault-0][IndexManager] Index created 
[schema=PUBLIC, table=TESTTABLE, index=TESTTABLE_PK, indexId=2]
2023-06-12 11:56:09:058 +0300 
[INFO][TypesCastTest_cluster_0-srv-worker-1][ClientInboundMessageHandler] 
Partition assignment changed, notifying client [remoteAddress=/127.0.0.1:48506]
2023-06-12 11:56:11:002 +0300 
[INFO][%TypesCastTest_cluster_0%sql-execution-pool-2][ExchangeServiceImpl] 
Failed to execute query fragment: queryId=ebbbf903-b6ac-4f60-a43a-750b314d7662, 
fragmentId=7
org.apache.ignite.sql.SqlException: IGN-CMN-65535 
TraceId:f3a5a43c-2d11-411d-9eb1-35c3b4b228d3 class java.lang.Integer cannot be 
cast to class java.lang.Long (java.lang.Integer and java.lang.Long are in 
module java.base of loader 'bootstrap')
        at 
org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.wrapIfNecessary(ExchangeServiceImpl.java:148)
        at 
org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.sendError(ExchangeServiceImpl.java:114)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.Outbox.sendError(Outbox.java:257)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.Outbox.onError(Outbox.java:179)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode.onError(AbstractNode.java:140)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode.onError(AbstractNode.java:140)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionContext.lambda$execute$0(ExecutionContext.java:318)
        at 
org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:80)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ClassCastException: class java.lang.Integer cannot be cast 
to class java.lang.Long (java.lang.Integer and java.lang.Long are in module 
java.base of loader 'bootstrap')
        at 
org.apache.ignite.internal.schema.row.RowAssembler.writeValue(RowAssembler.java:134)
        at 
org.apache.ignite.internal.sql.engine.schema.IgniteTableImpl.convertRow(IgniteTableImpl.java:524)
        at 
org.apache.ignite.internal.sql.engine.schema.IgniteTableImpl.upsertAll(IgniteTableImpl.java:344)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.ModifyNode.flushTuples(ModifyNode.java:224)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.ModifyNode.tryEnd(ModifyNode.java:187)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.ModifyNode.end(ModifyNode.java:160)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.StorageScanNode.push(StorageScanNode.java:217)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.StorageScanNode$SubscriberImpl.lambda$onComplete$2(StorageScanNode.java:303)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionContext.lambda$execute$0(ExecutionContext.java:315)
        ... 4 more
2023-06-12 11:56:11:020 +0300 
[INFO][%TypesCastTest_cluster_0%sql-execution-pool-1][JdbcQueryEventHandlerImpl]
 Exception while executing query [query=UPDATE testTable SET counter = ? WHERE 
id = 1]
org.apache.ignite.sql.SqlException: IGN-CMN-65535 
TraceId:f3a5a43c-2d11-411d-9eb1-35c3b4b228d3 Query remote fragment execution 
failed: nodeName=TypesCastTest_cluster_0, 
queryId=ebbbf903-b6ac-4f60-a43a-750b314d7662, fragmentId=7, 
originalMessage=class java.lang.Integer cannot be cast to class java.lang.Long 
(java.lang.Integer and java.lang.Long are in module java.base of loader 
'bootstrap')
        at 
org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.wrapIfNecessary(AsyncSqlCursorImpl.java:104)
        at 
org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.lambda$requestNextAsync$0(AsyncSqlCursorImpl.java:80)
        at 
java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
        at 
java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907)
        at 
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
        at 
java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.lambda$closeAsync$0(AsyncRootNode.java:157)
        at 
java.base/java.util.concurrent.ConcurrentLinkedQueue.forEachFrom(ConcurrentLinkedQueue.java:1037)
        at 
java.base/java.util.concurrent.ConcurrentLinkedQueue.forEach(ConcurrentLinkedQueue.java:1054)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.closeAsync(AsyncRootNode.java:157)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.onError(AsyncRootNode.java:112)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.lambda$onError$2(ExecutionServiceImpl.java:513)
        at 
java.base/java.util.concurrent.CompletableFuture.uniAcceptNow(CompletableFuture.java:753)
        at 
java.base/java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:731)
        at 
java.base/java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:2108)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.onError(ExecutionServiceImpl.java:512)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:364)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.lambda$start$4(ExecutionServiceImpl.java:213)
        at 
org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:153)
        at 
org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.lambda$onMessage$1(MessageServiceImpl.java:124)
        at 
org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:80)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: 
org.apache.ignite.internal.sql.engine.metadata.RemoteFragmentExecutionException:
 IGN-CMN-65535 TraceId:f3a5a43c-2d11-411d-9eb1-35c3b4b228d3 Query remote 
fragment execution failed: nodeName=TypesCastTest_cluster_0, 
queryId=ebbbf903-b6ac-4f60-a43a-750b314d7662, fragmentId=7, 
originalMessage=class java.lang.Integer cannot be cast to class java.lang.Long 
(java.lang.Integer and java.lang.Long are in module java.base of loader 
'bootstrap')
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:361)
        ... 7 more
{noformat}


  was:
Apache Ignite 3, rev. 44c97c00654e076031cf92631f3a7c4439458570

Steps:
- start a node
- create the following table: {{CREATE TABLE testTable (id INT PRIMARY KEY, 
counter BIGINT)}}
- insert a row using a PreparedStatement, use {{setInt()}} to set a value for 
BIGINT column
- update a row using a PreparedStatement, use {{setInt()}} to set a value for 
BIGINT column

Expected result:
- a row is added and then updated
- a row is added, but UPDATE throws a {{ClassCastException}}

Reproducer:
{code:java}
@Test
public void castIntegerToLongTest() throws SQLException {
    String createTableDdl = "CREATE TABLE testTable (id INT PRIMARY KEY, 
counter BIGINT)";
    log.info("Execute: {}", createTableDdl);
    statement.execute(createTableDdl);

    // PASSES
    try (PreparedStatement preparedStatement =
            connection.prepareStatement("INSERT INTO testTable (id, counter) 
VALUES (?, ?)")) {
        preparedStatement.setInt(1, 1);
        preparedStatement.setInt(2, 10);

        assertEquals(1, preparedStatement.executeUpdate());
    }

    // FAILS
    try (PreparedStatement preparedStatement =
            connection.prepareStatement("UPDATE testTable SET counter = ? WHERE 
id = 1")) {
        preparedStatement.setInt(1, 20);

        assertEquals(1, preparedStatement.executeUpdate());
    }
}
{code}


The exception in the node's log:
{noformat}
2023-06-12 11:56:09:009 +0300 
[INFO][%TypesCastTest_cluster_0%vault-0][IndexManager] Index created 
[schema=PUBLIC, table=TESTTABLE, index=TESTTABLE_PK, indexId=2]
2023-06-12 11:56:09:058 +0300 
[INFO][TypesCastTest_cluster_0-srv-worker-1][ClientInboundMessageHandler] 
Partition assignment changed, notifying client [remoteAddress=/127.0.0.1:48506]
2023-06-12 11:56:11:002 +0300 
[INFO][%TypesCastTest_cluster_0%sql-execution-pool-2][ExchangeServiceImpl] 
Failed to execute query fragment: queryId=ebbbf903-b6ac-4f60-a43a-750b314d7662, 
fragmentId=7
org.apache.ignite.sql.SqlException: IGN-CMN-65535 
TraceId:f3a5a43c-2d11-411d-9eb1-35c3b4b228d3 class java.lang.Integer cannot be 
cast to class java.lang.Long (java.lang.Integer and java.lang.Long are in 
module java.base of loader 'bootstrap')
        at 
org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.wrapIfNecessary(ExchangeServiceImpl.java:148)
        at 
org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.sendError(ExchangeServiceImpl.java:114)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.Outbox.sendError(Outbox.java:257)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.Outbox.onError(Outbox.java:179)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode.onError(AbstractNode.java:140)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode.onError(AbstractNode.java:140)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionContext.lambda$execute$0(ExecutionContext.java:318)
        at 
org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:80)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ClassCastException: class java.lang.Integer cannot be cast 
to class java.lang.Long (java.lang.Integer and java.lang.Long are in module 
java.base of loader 'bootstrap')
        at 
org.apache.ignite.internal.schema.row.RowAssembler.writeValue(RowAssembler.java:134)
        at 
org.apache.ignite.internal.sql.engine.schema.IgniteTableImpl.convertRow(IgniteTableImpl.java:524)
        at 
org.apache.ignite.internal.sql.engine.schema.IgniteTableImpl.upsertAll(IgniteTableImpl.java:344)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.ModifyNode.flushTuples(ModifyNode.java:224)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.ModifyNode.tryEnd(ModifyNode.java:187)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.ModifyNode.end(ModifyNode.java:160)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.StorageScanNode.push(StorageScanNode.java:217)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.StorageScanNode$SubscriberImpl.lambda$onComplete$2(StorageScanNode.java:303)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionContext.lambda$execute$0(ExecutionContext.java:315)
        ... 4 more
2023-06-12 11:56:11:020 +0300 
[INFO][%TypesCastTest_cluster_0%sql-execution-pool-1][JdbcQueryEventHandlerImpl]
 Exception while executing query [query=UPDATE testTable SET counter = ? WHERE 
id = 1]
org.apache.ignite.sql.SqlException: IGN-CMN-65535 
TraceId:f3a5a43c-2d11-411d-9eb1-35c3b4b228d3 Query remote fragment execution 
failed: nodeName=TypesCastTest_cluster_0, 
queryId=ebbbf903-b6ac-4f60-a43a-750b314d7662, fragmentId=7, 
originalMessage=class java.lang.Integer cannot be cast to class java.lang.Long 
(java.lang.Integer and java.lang.Long are in module java.base of loader 
'bootstrap')
        at 
org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.wrapIfNecessary(AsyncSqlCursorImpl.java:104)
        at 
org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.lambda$requestNextAsync$0(AsyncSqlCursorImpl.java:80)
        at 
java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
        at 
java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907)
        at 
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
        at 
java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.lambda$closeAsync$0(AsyncRootNode.java:157)
        at 
java.base/java.util.concurrent.ConcurrentLinkedQueue.forEachFrom(ConcurrentLinkedQueue.java:1037)
        at 
java.base/java.util.concurrent.ConcurrentLinkedQueue.forEach(ConcurrentLinkedQueue.java:1054)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.closeAsync(AsyncRootNode.java:157)
        at 
org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.onError(AsyncRootNode.java:112)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.lambda$onError$2(ExecutionServiceImpl.java:513)
        at 
java.base/java.util.concurrent.CompletableFuture.uniAcceptNow(CompletableFuture.java:753)
        at 
java.base/java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:731)
        at 
java.base/java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:2108)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.onError(ExecutionServiceImpl.java:512)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:364)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.lambda$start$4(ExecutionServiceImpl.java:213)
        at 
org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:153)
        at 
org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.lambda$onMessage$1(MessageServiceImpl.java:124)
        at 
org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:80)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: 
org.apache.ignite.internal.sql.engine.metadata.RemoteFragmentExecutionException:
 IGN-CMN-65535 TraceId:f3a5a43c-2d11-411d-9eb1-35c3b4b228d3 Query remote 
fragment execution failed: nodeName=TypesCastTest_cluster_0, 
queryId=ebbbf903-b6ac-4f60-a43a-750b314d7662, fragmentId=7, 
originalMessage=class java.lang.Integer cannot be cast to class java.lang.Long 
(java.lang.Integer and java.lang.Long are in module java.base of loader 
'bootstrap')
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:361)
        ... 7 more
{noformat}



> No implicit type conversion when using an UPDATE PreparedStatement 
> (ClassCastException)
> ---------------------------------------------------------------------------------------
>
>                 Key: IGNITE-19705
>                 URL: https://issues.apache.org/jira/browse/IGNITE-19705
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Ivan Artiukhov
>            Priority: Major
>              Labels: ignite-3
>
> Apache Ignite 3, rev. 44c97c00654e076031cf92631f3a7c4439458570
> Steps:
> - start a node
> - create the following table: {{CREATE TABLE testTable (id INT PRIMARY KEY, 
> counter BIGINT)}}
> - insert a row using a PreparedStatement, use {{setInt()}} to set a value for 
> BIGINT column
> - update a row using a PreparedStatement, use {{setInt()}} to set a value for 
> BIGINT column
> Expected result:
> - a row is added and then updated
> Actual result:
> - a row is added, but UPDATE throws a {{ClassCastException}}
> Reproducer:
> {code:java}
> @Test
> public void castIntegerToLongTest() throws SQLException {
>     String createTableDdl = "CREATE TABLE testTable (id INT PRIMARY KEY, 
> counter BIGINT)";
>     log.info("Execute: {}", createTableDdl);
>     statement.execute(createTableDdl);
>     // PASSES
>     try (PreparedStatement preparedStatement =
>             connection.prepareStatement("INSERT INTO testTable (id, counter) 
> VALUES (?, ?)")) {
>         preparedStatement.setInt(1, 1);
>         preparedStatement.setInt(2, 10);
>         assertEquals(1, preparedStatement.executeUpdate());
>     }
>     // FAILS
>     try (PreparedStatement preparedStatement =
>             connection.prepareStatement("UPDATE testTable SET counter = ? 
> WHERE id = 1")) {
>         preparedStatement.setInt(1, 20);
>         assertEquals(1, preparedStatement.executeUpdate());
>     }
> }
> {code}
> The exception in the node's log:
> {noformat}
> 2023-06-12 11:56:09:009 +0300 
> [INFO][%TypesCastTest_cluster_0%vault-0][IndexManager] Index created 
> [schema=PUBLIC, table=TESTTABLE, index=TESTTABLE_PK, indexId=2]
> 2023-06-12 11:56:09:058 +0300 
> [INFO][TypesCastTest_cluster_0-srv-worker-1][ClientInboundMessageHandler] 
> Partition assignment changed, notifying client 
> [remoteAddress=/127.0.0.1:48506]
> 2023-06-12 11:56:11:002 +0300 
> [INFO][%TypesCastTest_cluster_0%sql-execution-pool-2][ExchangeServiceImpl] 
> Failed to execute query fragment: 
> queryId=ebbbf903-b6ac-4f60-a43a-750b314d7662, fragmentId=7
> org.apache.ignite.sql.SqlException: IGN-CMN-65535 
> TraceId:f3a5a43c-2d11-411d-9eb1-35c3b4b228d3 class java.lang.Integer cannot 
> be cast to class java.lang.Long (java.lang.Integer and java.lang.Long are in 
> module java.base of loader 'bootstrap')
>       at 
> org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.wrapIfNecessary(ExchangeServiceImpl.java:148)
>       at 
> org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.sendError(ExchangeServiceImpl.java:114)
>       at 
> org.apache.ignite.internal.sql.engine.exec.rel.Outbox.sendError(Outbox.java:257)
>       at 
> org.apache.ignite.internal.sql.engine.exec.rel.Outbox.onError(Outbox.java:179)
>       at 
> org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode.onError(AbstractNode.java:140)
>       at 
> org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode.onError(AbstractNode.java:140)
>       at 
> org.apache.ignite.internal.sql.engine.exec.ExecutionContext.lambda$execute$0(ExecutionContext.java:318)
>       at 
> org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:80)
>       at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>       at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>       at java.base/java.lang.Thread.run(Thread.java:829)
> Caused by: java.lang.ClassCastException: class java.lang.Integer cannot be 
> cast to class java.lang.Long (java.lang.Integer and java.lang.Long are in 
> module java.base of loader 'bootstrap')
>       at 
> org.apache.ignite.internal.schema.row.RowAssembler.writeValue(RowAssembler.java:134)
>       at 
> org.apache.ignite.internal.sql.engine.schema.IgniteTableImpl.convertRow(IgniteTableImpl.java:524)
>       at 
> org.apache.ignite.internal.sql.engine.schema.IgniteTableImpl.upsertAll(IgniteTableImpl.java:344)
>       at 
> org.apache.ignite.internal.sql.engine.exec.rel.ModifyNode.flushTuples(ModifyNode.java:224)
>       at 
> org.apache.ignite.internal.sql.engine.exec.rel.ModifyNode.tryEnd(ModifyNode.java:187)
>       at 
> org.apache.ignite.internal.sql.engine.exec.rel.ModifyNode.end(ModifyNode.java:160)
>       at 
> org.apache.ignite.internal.sql.engine.exec.rel.StorageScanNode.push(StorageScanNode.java:217)
>       at 
> org.apache.ignite.internal.sql.engine.exec.rel.StorageScanNode$SubscriberImpl.lambda$onComplete$2(StorageScanNode.java:303)
>       at 
> org.apache.ignite.internal.sql.engine.exec.ExecutionContext.lambda$execute$0(ExecutionContext.java:315)
>       ... 4 more
> 2023-06-12 11:56:11:020 +0300 
> [INFO][%TypesCastTest_cluster_0%sql-execution-pool-1][JdbcQueryEventHandlerImpl]
>  Exception while executing query [query=UPDATE testTable SET counter = ? 
> WHERE id = 1]
> org.apache.ignite.sql.SqlException: IGN-CMN-65535 
> TraceId:f3a5a43c-2d11-411d-9eb1-35c3b4b228d3 Query remote fragment execution 
> failed: nodeName=TypesCastTest_cluster_0, 
> queryId=ebbbf903-b6ac-4f60-a43a-750b314d7662, fragmentId=7, 
> originalMessage=class java.lang.Integer cannot be cast to class 
> java.lang.Long (java.lang.Integer and java.lang.Long are in module java.base 
> of loader 'bootstrap')
>       at 
> org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.wrapIfNecessary(AsyncSqlCursorImpl.java:104)
>       at 
> org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.lambda$requestNextAsync$0(AsyncSqlCursorImpl.java:80)
>       at 
> java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
>       at 
> java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907)
>       at 
> java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
>       at 
> java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088)
>       at 
> org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.lambda$closeAsync$0(AsyncRootNode.java:157)
>       at 
> java.base/java.util.concurrent.ConcurrentLinkedQueue.forEachFrom(ConcurrentLinkedQueue.java:1037)
>       at 
> java.base/java.util.concurrent.ConcurrentLinkedQueue.forEach(ConcurrentLinkedQueue.java:1054)
>       at 
> org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.closeAsync(AsyncRootNode.java:157)
>       at 
> org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.onError(AsyncRootNode.java:112)
>       at 
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.lambda$onError$2(ExecutionServiceImpl.java:513)
>       at 
> java.base/java.util.concurrent.CompletableFuture.uniAcceptNow(CompletableFuture.java:753)
>       at 
> java.base/java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:731)
>       at 
> java.base/java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:2108)
>       at 
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.onError(ExecutionServiceImpl.java:512)
>       at 
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:364)
>       at 
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.lambda$start$4(ExecutionServiceImpl.java:213)
>       at 
> org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:153)
>       at 
> org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.lambda$onMessage$1(MessageServiceImpl.java:124)
>       at 
> org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:80)
>       at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>       at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>       at java.base/java.lang.Thread.run(Thread.java:829)
> Caused by: 
> org.apache.ignite.internal.sql.engine.metadata.RemoteFragmentExecutionException:
>  IGN-CMN-65535 TraceId:f3a5a43c-2d11-411d-9eb1-35c3b4b228d3 Query remote 
> fragment execution failed: nodeName=TypesCastTest_cluster_0, 
> queryId=ebbbf903-b6ac-4f60-a43a-750b314d7662, fragmentId=7, 
> originalMessage=class java.lang.Integer cannot be cast to class 
> java.lang.Long (java.lang.Integer and java.lang.Long are in module java.base 
> of loader 'bootstrap')
>       at 
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:361)
>       ... 7 more
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to