Hello!

It would be nice if you created a ticket against Apache Ignite JIRA
regarding this behavior. It would be extra nice if you pdovide a reproducer.

Regards,
-- 
Ilya Kasnacheev


пн, 11 мар. 2019 г. в 09:04, xmw45688 <[email protected]>:

> Hi All,
>
> Adding new primitive type columns to the existing tables (table has data)
> in
> Cassandra causes Ignite to raise an exception (see below) in Ignite 2.7.0
> or
> 2.8.0 nightly build when loading the data from Cassandra into Ignite Cache
> store.   This works before Ignite 2.6, and even
> apache-ignite-fabric-2.7.0.20180918 nightly build.  The assumption seems
> not
> correct because both Ignite and Cassandra are (key, value) store.
>
> In fact, SQLLINE tool, we don't need to insert into primitive value, see
> the
> example blow
> CREATE TABLE aa (col1 int PRIMARY KEY, col2 double );
> INSERT INTO aa(col1) VALUES (1);
> SELECT * FROM aa;
>
> 0: jdbc:ignite:thin://localhost> select * from aa;
> +--------------------------------+--------------------------------+
> |              COL1              |              COL2              |
> +--------------------------------+--------------------------------+
> | 1                              | null                           |
> +--------------------------------+--------------------------------+
> 1 row selected (0.052 seconds)
> 0: jdbc:ignite:thin://localhost>
>
>
> [2019-03-11
>
> 09:44:34,352][ERROR][cassandra-cache-loader-#61%ignite-procurant-purchase-order-cluster%][CassandraCacheStore]
> Failed to build Ignite value object from provided Cassandra row
> java.lang.IllegalArgumentException: Can't cast null value from Cassandra
> table column 'suppliertotamt' to double value used in domain object model
>         at
>
> org.apache.ignite.cache.store.cassandra.common.PropertyMappingHelper.getCassandraColumnValue(PropertyMappingHelper.java:169)
>         at
>
> org.apache.ignite.cache.store.cassandra.persistence.PojoField.setValueFromRow(PojoField.java:205)
>         at
>
> org.apache.ignite.cache.store.cassandra.persistence.PersistenceController.buildObject(PersistenceController.java:405)
>         at
>
> org.apache.ignite.cache.store.cassandra.persistence.PersistenceController.buildValueObject(PersistenceController.java:227)
>         at
>
> org.apache.ignite.cache.store.cassandra.session.LoadCacheCustomQueryWorker$1.process(LoadCacheCustomQueryWorker.java:107)
>         at
>
> org.apache.ignite.cache.store.cassandra.session.CassandraSessionImpl.execute(CassandraSessionImpl.java:402)
>         at
>
> org.apache.ignite.cache.store.cassandra.session.LoadCacheCustomQueryWorker.call(LoadCacheCustomQueryWorker.java:81)
>         at
>
> org.apache.ignite.cache.store.cassandra.session.LoadCacheCustomQueryWorker.call(LoadCacheCustomQueryWorker.java:35)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>         at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>         at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>         at java.lang.Thread.run(Thread.java:748)
> [2019-03-11
>
> 09:44:34,360][ERROR][cassandra-cache-loader-#61%ignite-procurant-purchase-order-cluster%][CassandraCacheStore]
> Failed to execute Cassandra loadCache operation
> class org.apache.ignite.IgniteException: Failed to execute Cassandra
> loadCache operation
>         at
>
> org.apache.ignite.cache.store.cassandra.session.CassandraSessionImpl.execute(CassandraSessionImpl.java:415)
>         at
>
> org.apache.ignite.cache.store.cassandra.session.LoadCacheCustomQueryWorker.call(LoadCacheCustomQueryWorker.java:81)
>         at
>
> org.apache.ignite.cache.store.cassandra.session.LoadCacheCustomQueryWorker.call(LoadCacheCustomQueryWorker.java:35)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>         at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>         at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>         at java.lang.Thread.run(Thread.java:748)
> Caused by: class org.apache.ignite.IgniteException: Failed to build Ignite
> value object from provided Cassandra row
>         at
>
> org.apache.ignite.cache.store.cassandra.session.LoadCacheCustomQueryWorker$1.process(LoadCacheCustomQueryWorker.java:112)
>         at
>
> org.apache.ignite.cache.store.cassandra.session.CassandraSessionImpl.execute(CassandraSessionImpl.java:402)
>         ... 6 more
> Caused by: java.lang.IllegalArgumentException: Can't cast null value from
> Cassandra table column 'suppliertotamt' to double value used in domain
> object model
>         at
>
> org.apache.ignite.cache.store.cassandra.common.PropertyMappingHelper.getCassandraColumnValue(PropertyMappingHelper.java:169)
>         at
>
> org.apache.ignite.cache.store.cassandra.persistence.PojoField.setValueFromRow(PojoField.java:205)
>         at
>
> org.apache.ignite.cache.store.cassandra.persistence.PersistenceController.buildObject(PersistenceController.java:405)
>         at
>
> org.apache.ignite.cache.store.cassandra.persistence.PersistenceController.buildValueObject(PersistenceController.java:227)
>
>
> CREATE TABLE aa (col1 int PRIMARY KEY, col2 double );
> INSERT INTO aa(col1) VALUES (1);
> SELECT * FROM aa;
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>

Reply via email to