[
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)