Cross posting to dev. Vladimir Ozerov, can you please take a look at NPE from query processor (see below - GridQueryProcessor.typeByValue(GridQueryProcessor.java:1901))?
--Yakov 2018-03-29 0:19 GMT+03:00 smurphy <smur...@trustwave.com>: > Code works in Ignite 2.1.0. Upgrading to 2.4.0 produces the stack trace > below. The delete statement that is causing the error is: > > SqlFieldsQuery sqlQuery = new SqlFieldsQuery("delete from EngineFragment > where " + criteria()); > fragmentCache.query(sqlQuery.setArgs(criteria.getArgs())); > > The code above is called from within a transactional block managed by a > PlatformTransactionManager which is in turn managed by Spring's > ChainedTransactionManager. If the @Transactional annotation is removed from > the surrounding code, then the code works ok... > > 2018-03-28 15:50:05,748 WARN [engine 127.0.0.1] progress_monitor_2 unknown > unknown {ProgressMonitorImpl.java:112} - Scan > [ec7af5e8-a773-40fd-9722-f81103de73dc] is unable to process! > javax.cache.CacheException: Failed to process key '247002' > at > org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query( > IgniteCacheProxyImpl.java:618) > at > org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query( > IgniteCacheProxyImpl.java:557) > at > org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy. > query(GatewayProtectedCacheProxy.java:382) > at > com.company.core.dao.ignite.IgniteFragmentDao.delete( > IgniteFragmentDao.java:143) > at > com.company.core.dao.ignite.IgniteFragmentDao$$FastClassBySpringCGLIB$$ > c520aa1b.invoke(<generated>) > at org.springframework.cglib.proxy.MethodProxy.invoke( > MethodProxy.java:204) > at > org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation. > invokeJoinpoint(CglibAopProxy.java:720) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( > ReflectiveMethodInvocation.java:157) > at > org.springframework.dao.support.PersistenceExceptionTranslatio > nInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:136) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( > ReflectiveMethodInvocation.java:179) > at > org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor. > intercept(CglibAopProxy.java:655) > at > com.company.core.dao.ignite.IgniteFragmentDao$$EnhancerBySpringCGLIB$$ > ce60f71c.delete(<generated>) > at > com.company.core.core.service.impl.InternalScanServiceImpl. > purgeScanFromGrid(InternalScanServiceImpl.java:455) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: > 62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection > (AopUtils.java:302) > at > org.springframework.aop.framework.JdkDynamicAopProxy. > invoke(JdkDynamicAopProxy.java:202) > at com.sun.proxy.$Proxy417.purgeScanFromGrid(Unknown Source) > at com.company.core.core.async.tasks.PurgeTask.process( > PurgeTask.java:85) > at sun.reflect.GeneratedMethodAccessor197.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection > (AopUtils.java:302) > at > org.springframework.aop.framework.ReflectiveMethodInvocation. > invokeJoinpoint(ReflectiveMethodInvocation.java:190) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( > ReflectiveMethodInvocation.java:157) > at > org.springframework.transaction.interceptor.TransactionInterceptor$1. > proceedWithInvocation(TransactionInterceptor.java:99) > at > org.springframework.transaction.interceptor.TransactionAspectSupport. > invokeWithinTransaction(TransactionAspectSupport.java:281) > at > org.springframework.transaction.interceptor.TransactionInterceptor.invoke( > TransactionInterceptor.java:96) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( > ReflectiveMethodInvocation.java:179) > at > org.springframework.aop.framework.JdkDynamicAopProxy. > invoke(JdkDynamicAopProxy.java:208) > at com.sun.proxy.$Proxy418.process(Unknown Source) > at > com.company.core.core.async.impl.ProgressMonitorImpl._ > runTasks(ProgressMonitorImpl.java:128) > at > com.company.core.core.async.impl.ProgressMonitorImpl.lambda$null$0( > ProgressMonitorImpl.java:98) > at java.util.concurrent.Executors$RunnableAdapter. > call(Executors.java:511) > at > com.google.common.util.concurrent.TrustedListenableFutureTask$ > TrustedFutureInterruptibleTask.runInterruptibly( > TrustedListenableFutureTask.java:108) > at > com.google.common.util.concurrent.InterruptibleTask. > run(InterruptibleTask.java:41) > at > com.google.common.util.concurrent.TrustedListenableFutureTask.run( > TrustedListenableFutureTask.java:77) > at > java.util.concurrent.ThreadPoolExecutor.runWorker( > ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run( > ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > Caused by: class > org.apache.ignite.internal.processors.query.IgniteSQLException: Failed to > process key '247002' > at > org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor. > doDelete(DmlStatementsProcessor.java:681) > at > org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor. > processDmlSelectResult(DmlStatementsProcessor.java:582) > at > org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor. > executeUpdateStatement(DmlStatementsProcessor.java:534) > at > org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor. > updateSqlFields(DmlStatementsProcessor.java:160) > at > org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor. > updateSqlFieldsDistributed(DmlStatementsProcessor.java:334) > at > org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing. > doRunPrepared(IgniteH2Indexing.java:1613) > at > org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing. > querySqlFields(IgniteH2Indexing.java:1577) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx( > GridQueryProcessor.java:2039) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx( > GridQueryProcessor.java:2034) > at > org.apache.ignite.internal.util.lang.IgniteOutClosureX. > apply(IgniteOutClosureX.java:36) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor. > executeQuery(GridQueryProcessor.java:2555) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor. > querySqlFields(GridQueryProcessor.java:2048) > at > org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query( > IgniteCacheProxyImpl.java:606) > ... 41 more > Caused by: java.sql.SQLException: Failed to process key '247002' > at > org.apache.ignite.internal.processors.cache.query.IgniteQueryErrorCode. > createJdbcSqlException(IgniteQueryErrorCode.java:116) > at > org.apache.ignite.internal.processors.query.h2.dml. > DmlBatchSender.splitErrors(DmlBatchSender.java:262) > at > org.apache.ignite.internal.processors.query.h2.dml. > DmlBatchSender.processPage(DmlBatchSender.java:228) > at > org.apache.ignite.internal.processors.query.h2.dml. > DmlBatchSender.sendBatch(DmlBatchSender.java:178) > at > org.apache.ignite.internal.processors.query.h2.dml.DmlBatchSender.flush( > DmlBatchSender.java:129) > at > org.apache.ignite.internal.processors.query.h2.DmlStatementsProcessor. > doDelete(DmlStatementsProcessor.java:663) > ... 53 more > Caused by: javax.cache.processor.EntryProcessorException: class > org.apache.ignite.IgniteCheckedException: null > at > org.apache.ignite.internal.processors.cache.CacheInvokeResult.get( > CacheInvokeResult.java:102) > at > org.apache.ignite.internal.processors.query.h2.dml. > DmlBatchSender.splitErrors(DmlBatchSender.java:259) > ... 57 more > Caused by: class org.apache.ignite.IgniteCheckedException: null > at org.apache.ignite.internal.util.IgniteUtils.cast( > IgniteUtils.java:7244) > at > org.apache.ignite.internal.processors.cache.GridCacheContext. > validateKeyAndValue(GridCacheContext.java:1832) > at > org.apache.ignite.internal.processors.cache.transactions. > IgniteTxLocalAdapter.addInvokeResult(IgniteTxLocalAdapter.java:1218) > at > org.apache.ignite.internal.processors.cache.distributed. > near.GridNearTxLocal.access$2300(GridNearTxLocal.java:122) > at > org.apache.ignite.internal.processors.cache.distributed. > near.GridNearTxLocal$9.apply(GridNearTxLocal.java:2329) > at > org.apache.ignite.internal.processors.cache.distributed. > near.GridNearTxLocal$9.apply(GridNearTxLocal.java:2286) > at > org.apache.ignite.internal.processors.cache.distributed. > near.GridNearTxLocal.processLoaded(GridNearTxLocal.java:2778) > at > org.apache.ignite.internal.processors.cache.distributed. > near.GridNearTxLocal.access$3000(GridNearTxLocal.java:122) > at > org.apache.ignite.internal.processors.cache.distributed. > near.GridNearTxLocal$13.apply(GridNearTxLocal.java:2524) > at > org.apache.ignite.internal.processors.cache.distributed. > near.GridNearTxLocal$13.apply(GridNearTxLocal.java:2519) > at > org.apache.ignite.internal.util.future.GridFutureChainListener. > applyCallback(GridFutureChainListener.java:78) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.apply( > GridFutureChainListener.java:70) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.apply( > GridFutureChainListener.java:30) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener( > GridFutureAdapter.java:383) > at > org.apache.ignite.internal.util.future.GridFutureAdapter. > unblock(GridFutureAdapter.java:347) > at > org.apache.ignite.internal.util.future.GridFutureAdapter. > unblockAll(GridFutureAdapter.java:335) > at > org.apache.ignite.internal.util.future.GridFutureAdapter. > onDone(GridFutureAdapter.java:495) > at > org.apache.ignite.internal.processors.cache.GridCacheFutureAdapter.onDone( > GridCacheFutureAdapter.java:55) > at > org.apache.ignite.internal.util.future.GridFutureAdapter. > onDone(GridFutureAdapter.java:474) > at > org.apache.ignite.internal.processors.cache.distributed.dht. > GridPartitionedSingleGetFuture.onDone(GridPartitionedSingleGetFuture > .java:778) > at > org.apache.ignite.internal.util.future.GridFutureAdapter. > onDone(GridFutureAdapter.java:451) > at > org.apache.ignite.internal.processors.cache.distributed.dht. > GridPartitionedSingleGetFuture.setResult(GridPartitionedSingleGetFuture > .java:684) > at > org.apache.ignite.internal.processors.cache.distributed.dht. > GridPartitionedSingleGetFuture.onResult(GridPartitionedSingleGetFuture > .java:517) > at > org.apache.ignite.internal.processors.cache.distributed. > dht.GridDhtCacheAdapter.processNearSingleGetResponse( > GridDhtCacheAdapter.java:349) > at > org.apache.ignite.internal.processors.cache.distributed.dht.colocated. > GridDhtColocatedCache.access$100(GridDhtColocatedCache.java:83) > at > org.apache.ignite.internal.processors.cache.distributed.dht.colocated. > GridDhtColocatedCache$2.apply(GridDhtColocatedCache.java:128) > at > org.apache.ignite.internal.processors.cache.distributed.dht.colocated. > GridDhtColocatedCache$2.apply(GridDhtColocatedCache.java:126) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager. > processMessage(GridCacheIoManager.java:1060) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0( > GridCacheIoManager.java:579) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager. > handleMessage(GridCacheIoManager.java:378) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager. > handleMessage(GridCacheIoManager.java:304) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100( > GridCacheIoManager.java:99) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager$1. > onMessage(GridCacheIoManager.java:293) > at > org.apache.ignite.internal.managers.communication. > GridIoManager.invokeListener(GridIoManager.java:1555) > at > org.apache.ignite.internal.managers.communication.GridIoManager. > processRegularMessage0(GridIoManager.java:1183) > at > org.apache.ignite.internal.managers.communication. > GridIoManager.access$4200(GridIoManager.java:126) > at > org.apache.ignite.internal.managers.communication.GridIoManager$9.run( > GridIoManager.java:1090) > at > org.apache.ignite.internal.util.StripedExecutor$Stripe. > run(StripedExecutor.java:505) > ... 1 more > Caused by: java.lang.NullPointerException > at > org.apache.ignite.internal.processors.query.GridQueryProcessor. > typeByValue(GridQueryProcessor.java:1901) > at > org.apache.ignite.internal.processors.query.GridQueryProcessor. > validateKeyAndValue(GridQueryProcessor.java:2755) > at > org.apache.ignite.internal.processors.cache.GridCacheContext. > validateKeyAndValue(GridCacheContext.java:1829) > ... 37 more > > > > -- > Sent from: http://apache-ignite-users.70518.x6.nabble.com/ >