[
https://issues.apache.org/jira/browse/IGNITE-12863?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alex Serbin updated IGNITE-12863:
---------------------------------
Description:
When trying to create a simple cache with Cassandra store and have value
persistence strategy POJO, the following exception occurs
{code:java}
Caused by: java.lang.NullPointerException: nullCaused by:
java.lang.NullPointerException: null at
org.apache.ignite.cache.store.cassandra.persistence.PojoField.calculatedField(PojoField.java:155)
~[ignite-cassandra-store-2.8.0.jar:2.8.0] at
org.apache.ignite.cache.store.cassandra.persistence.PersistenceController.prepareLoadStatements(PersistenceController.java:311)
~[ignite-cassandra-store-2.8.0.jar:2.8.0] at
org.apache.ignite.cache.store.cassandra.persistence.PersistenceController.<init>(PersistenceController.java:85)
~[ignite-cassandra-store-2.8.0.jar:2.8.0] at
org.apache.ignite.cache.store.cassandra.CassandraCacheStore.<init>(CassandraCacheStore.java:106)
~[ignite-cassandra-store-2.8.0.jar:2.8.0] at
org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory.create(CassandraCacheStoreFactory.java:59)
~[ignite-cassandra-store-2.8.0.jar:2.8.0] at
org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory.create(CassandraCacheStoreFactory.java:34)
~[ignite-cassandra-store-2.8.0.jar:2.8.0] at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.createCacheContext(GridCacheProcessor.java:1199)
~[ignite-core-2.8.0.jar:2.8.0] at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheContext(GridCacheProcessor.java:1995)
~[ignite-core-2.8.0.jar:2.8.0] at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$null$6a5b31b9$1(GridCacheProcessor.java:1830)
~[ignite-core-2.8.0.jar:2.8.0] at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$prepareStartCaches$8(GridCacheProcessor.java:1754)
~[ignite-core-2.8.0.jar:2.8.0] at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$prepareStartCaches$926b6886$1(GridCacheProcessor.java:1827)
~[ignite-core-2.8.0.jar:2.8.0] at
org.apache.ignite.internal.util.IgniteUtils.lambda$null$1(IgniteUtils.java:11138)
~[ignite-core-2.8.0.jar:2.8.0] at
java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
~[na:1.8.0_181] at java.util.concurrent.FutureTask.run(FutureTask.java)
~[na:1.8.0_181] at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
~[na:1.8.0_181] at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
~[na:1.8.0_181] at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_181] {code}
It looks like that recent changes of IGNITE-1903 are leading to this issue, as
we are starting to serialize {{CacheStoreFactory}}, which contains
{{PojoFiled}}, which in its turn has transient field accessor. This leads to
accessor being null after deserialization. Note, that this happens only when
passing {{persistenceSettings}} (not {{persistenceSettingsBean}})
Works fine with Ignite 2.7.6.
Probably related to IGNITE-8500
was:
When trying to create a simple cache with Cassandra store and have value
persistence strategy POJO, the following exception occurs
{code:java}
Caused by: java.lang.NullPointerException: nullCaused by:
java.lang.NullPointerException: null at
org.apache.ignite.cache.store.cassandra.persistence.PojoField.calculatedField(PojoField.java:155)
~[ignite-cassandra-store-2.8.0.jar:2.8.0] at
org.apache.ignite.cache.store.cassandra.persistence.PersistenceController.prepareLoadStatements(PersistenceController.java:311)
~[ignite-cassandra-store-2.8.0.jar:2.8.0] at
org.apache.ignite.cache.store.cassandra.persistence.PersistenceController.<init>(PersistenceController.java:85)
~[ignite-cassandra-store-2.8.0.jar:2.8.0] at
org.apache.ignite.cache.store.cassandra.CassandraCacheStore.<init>(CassandraCacheStore.java:106)
~[ignite-cassandra-store-2.8.0.jar:2.8.0] at
org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory.create(CassandraCacheStoreFactory.java:59)
~[ignite-cassandra-store-2.8.0.jar:2.8.0] at
org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory.create(CassandraCacheStoreFactory.java:34)
~[ignite-cassandra-store-2.8.0.jar:2.8.0] at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.createCacheContext(GridCacheProcessor.java:1199)
~[ignite-core-2.8.0.jar:2.8.0] at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheContext(GridCacheProcessor.java:1995)
~[ignite-core-2.8.0.jar:2.8.0] at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$null$6a5b31b9$1(GridCacheProcessor.java:1830)
~[ignite-core-2.8.0.jar:2.8.0] at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$prepareStartCaches$8(GridCacheProcessor.java:1754)
~[ignite-core-2.8.0.jar:2.8.0] at
org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$prepareStartCaches$926b6886$1(GridCacheProcessor.java:1827)
~[ignite-core-2.8.0.jar:2.8.0] at
org.apache.ignite.internal.util.IgniteUtils.lambda$null$1(IgniteUtils.java:11138)
~[ignite-core-2.8.0.jar:2.8.0] at
java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
~[na:1.8.0_181] at java.util.concurrent.FutureTask.run(FutureTask.java)
~[na:1.8.0_181] at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
~[na:1.8.0_181] at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
~[na:1.8.0_181] at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_181] {code}
It looks like that recent changes of IGNITE-1903 are leading to this issue, as
we are starting to serialize cacheStoreFactory, which contains PojoFiled, which
in its turn has transient field accessor. This leads to accessor being null
after deserialization.
Works fine with Ignite 2.7.6.
Probably related to IGNITE-8500
> NPE while initializing Cassandra Store
> --------------------------------------
>
> Key: IGNITE-12863
> URL: https://issues.apache.org/jira/browse/IGNITE-12863
> Project: Ignite
> Issue Type: Bug
> Affects Versions: 2.8
> Reporter: Alex Serbin
> Priority: Major
>
> When trying to create a simple cache with Cassandra store and have value
> persistence strategy POJO, the following exception occurs
> {code:java}
> Caused by: java.lang.NullPointerException: nullCaused by:
> java.lang.NullPointerException: null at
> org.apache.ignite.cache.store.cassandra.persistence.PojoField.calculatedField(PojoField.java:155)
> ~[ignite-cassandra-store-2.8.0.jar:2.8.0] at
> org.apache.ignite.cache.store.cassandra.persistence.PersistenceController.prepareLoadStatements(PersistenceController.java:311)
> ~[ignite-cassandra-store-2.8.0.jar:2.8.0] at
> org.apache.ignite.cache.store.cassandra.persistence.PersistenceController.<init>(PersistenceController.java:85)
> ~[ignite-cassandra-store-2.8.0.jar:2.8.0] at
> org.apache.ignite.cache.store.cassandra.CassandraCacheStore.<init>(CassandraCacheStore.java:106)
> ~[ignite-cassandra-store-2.8.0.jar:2.8.0] at
> org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory.create(CassandraCacheStoreFactory.java:59)
> ~[ignite-cassandra-store-2.8.0.jar:2.8.0] at
> org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory.create(CassandraCacheStoreFactory.java:34)
> ~[ignite-cassandra-store-2.8.0.jar:2.8.0] at
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.createCacheContext(GridCacheProcessor.java:1199)
> ~[ignite-core-2.8.0.jar:2.8.0] at
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheContext(GridCacheProcessor.java:1995)
> ~[ignite-core-2.8.0.jar:2.8.0] at
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$null$6a5b31b9$1(GridCacheProcessor.java:1830)
> ~[ignite-core-2.8.0.jar:2.8.0] at
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$prepareStartCaches$8(GridCacheProcessor.java:1754)
> ~[ignite-core-2.8.0.jar:2.8.0] at
> org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$prepareStartCaches$926b6886$1(GridCacheProcessor.java:1827)
> ~[ignite-core-2.8.0.jar:2.8.0] at
> org.apache.ignite.internal.util.IgniteUtils.lambda$null$1(IgniteUtils.java:11138)
> ~[ignite-core-2.8.0.jar:2.8.0] at
> java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
> ~[na:1.8.0_181] at java.util.concurrent.FutureTask.run(FutureTask.java)
> ~[na:1.8.0_181] at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> ~[na:1.8.0_181] at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> ~[na:1.8.0_181] at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_181]
> {code}
> It looks like that recent changes of IGNITE-1903 are leading to this issue,
> as we are starting to serialize {{CacheStoreFactory}}, which contains
> {{PojoFiled}}, which in its turn has transient field accessor. This leads to
> accessor being null after deserialization. Note, that this happens only when
> passing {{persistenceSettings}} (not {{persistenceSettingsBean}})
> Works fine with Ignite 2.7.6.
> Probably related to IGNITE-8500
--
This message was sent by Atlassian Jira
(v8.3.4#803005)