on 07-21-2017 2:11 AM
While trying to export CMSNavigationNode items in my stream config, I'm getting the error below. My where clause and info expression are defaults, which show up as where clause: "{catalogVersion}=?catalogVersion" and info expression: "#{getCatalogVersion().getCatalog().getId()}:#{getCatalogVersion().getVersion()}|#{getLink().getCatalogVersion().getCatalog().getId()}:#{getLink().getCatalogVersion().getVersion()}:#{getLink().getUid()}|#{getUid()}"
Any insights here? Thank you.
ERROR [TaskExecutor-master-535-Task [8796225668022]] [DefaultChangeDetectionService] Error while consuming changed:org.springframework.expression.spel.SpelEvaluationException: EL1011E:(pos 10): Method call: Attempted to call method getCatalogVersion() on null context object
java.util.concurrent.ExecutionException: org.springframework.expression.spel.SpelEvaluationException: EL1011E:(pos 10): Method call: Attempted to call method getCatalogVersion() on null context object
at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_92]
at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:1.8.0_92]
at de.hybris.deltadetection.impl.DefaultChangeDetectionService.consumeChanges(DefaultChangeDetectionService.java:362) [deltadetectionserver.jar:?]
at de.hybris.y2ysync.task.runner.internal.ProcessChangesTask.consumeChangesOrCreateConsumeMarkers(ProcessChangesTask.java:103) [y2ysyncserver.jar:?]
at de.hybris.y2ysync.task.runner.internal.ProcessChangesTask.execute(ProcessChangesTask.java:79) [y2ysyncserver.jar:?]
at de.hybris.y2ysync.task.runner.ItemChangesProcessor.run(ItemChangesProcessor.java:59) [y2ysyncserver.jar:?]
at de.hybris.platform.task.impl.DefaultTaskExecutionStrategy$1.execute(DefaultTaskExecutionStrategy.java:103) [processingserver.jar:?]
at de.hybris.platform.tx.Transaction.execute(Transaction.java:1187) [coreserver.jar:?]
at de.hybris.platform.tx.Transaction.execute(Transaction.java:1152) [coreserver.jar:?]
at de.hybris.platform.task.impl.DefaultTaskExecutionStrategy.run(DefaultTaskExecutionStrategy.java:95) [processingserver.jar:?]
at de.hybris.platform.task.impl.DefaultTaskService.processTask(DefaultTaskService.java:1536) [processingserver.jar:?]
at de.hybris.platform.task.impl.DefaultTaskService.process(DefaultTaskService.java:1440) [processingserver.jar:?]
at de.hybris.platform.task.impl.DefaultTaskService.processInTenant(DefaultTaskService.java:1409) [processingserver.jar:?]
at de.hybris.platform.task.impl.DefaultTaskService$5.run(DefaultTaskService.java:1288) [processingserver.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_92]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_92]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_92]
Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1011E:(pos 10): Method call: Attempted to call method getCatalogVersion() on null context object
at org.springframework.expression.spel.ast.MethodReference.throwIfNotNullSafe(MethodReference.java:144) ~[spring-expression-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.expression.spel.ast.MethodReference.getValueInternal(MethodReference.java:95) ~[spring-expression-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.expression.spel.ast.MethodReference.getValueInternal(MethodReference.java:85) ~[spring-expression-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.expression.spel.ast.CompoundExpression.getValueRef(CompoundExpression.java:57) ~[spring-expression-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:87) ~[spring-expression-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.expression.spel.ast.SpelNodeImpl.getTypedValue(SpelNodeImpl.java:131) ~[spring-expression-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:216) ~[spring-expression-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.expression.common.CompositeStringExpression.getValue(CompositeStringExpression.java:77) ~[spring-expression-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.expression.common.CompositeStringExpression.getValue(CompositeStringExpression.java:42) ~[spring-expression-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at de.hybris.deltadetection.impl.DefaultChangeDetectionService.parseInfoExpression(DefaultChangeDetectionService.java:671) ~[deltadetectionserver.jar:?]
at de.hybris.deltadetection.impl.DefaultChangeDetectionService.fillInitialVersionMarker(DefaultChangeDetectionService.java:627) ~[deltadetectionserver.jar:?]
at de.hybris.deltadetection.impl.DefaultChangeDetectionService.lambda$3(DefaultChangeDetectionService.java:311) ~[deltadetectionserver.jar:?]
at de.hybris.platform.util.persistence.PersistenceUtils$1.execute(PersistenceUtils.java:51) ~[coreserver.jar:?]
at de.hybris.platform.servicelayer.session.impl.DefaultSessionService.executeInLocalViewWithParams(DefaultSessionService.java:108) ~[coreserver.jar:?]
at de.hybris.platform.util.persistence.PersistenceUtils.doWithChangedPersistenceLegacyMode(PersistenceUtils.java:46) ~[coreserver.jar:?]
at de.hybris.platform.util.persistence.PersistenceUtils.doWithSLDPersistence(PersistenceUtils.java:33) ~[coreserver.jar:?]
at de.hybris.deltadetection.impl.DefaultChangeDetectionService.consumeChangesBatch(DefaultChangeDetectionService.java:296) ~[deltadetectionserver.jar:?]
at de.hybris.deltadetection.impl.DefaultChangeDetectionService.access$1(DefaultChangeDetectionService.java:293) ~[deltadetectionserver.jar:?]
at de.hybris.deltadetection.impl.DefaultChangeDetectionService$1.call(DefaultChangeDetectionService.java:469) ~[deltadetectionserver.jar:?]
at de.hybris.deltadetection.impl.DefaultChangeDetectionService$1.call(DefaultChangeDetectionService.java:1) ~[deltadetectionserver.jar:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_92]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[?:1.8.0_92]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[?:1.8.0_92]
at de.hybris.platform.core.TenantAwareThreadFactory$1.run(TenantAwareThreadFactory.java:158) ~[coreserver.jar:?]
ERROR [TaskExecutor-master-535-Task [8796225668022]] [ItemChangesProcessor] Error occured during processing task: java.lang.IllegalStateException: There were errors during changes consumption. Please check the logs for details.
ERROR [TaskExecutor-master-535-Task [8796225668022]] [DefaultTaskService] Failed to execute task 8796225668022(hjmpTS:0).
de.hybris.platform.servicelayer.exceptions.SystemException: java.lang.RuntimeException: Processing changes has failed.
at de.hybris.platform.task.impl.DefaultTaskExecutionStrategy.run(DefaultTaskExecutionStrategy.java:127) ~[processingserver.jar:?]
at de.hybris.platform.task.impl.DefaultTaskService.processTask(DefaultTaskService.java:1536) [processingserver.jar:?]
at de.hybris.platform.task.impl.DefaultTaskService.process(DefaultTaskService.java:1440) [processingserver.jar:?]
at de.hybris.platform.task.impl.DefaultTaskService.processInTenant(DefaultTaskService.java:1409) [processingserver.jar:?]
at de.hybris.platform.task.impl.DefaultTaskService$5.run(DefaultTaskService.java:1288) [processingserver.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_92]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_92]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_92]
Caused by: java.lang.RuntimeException: Processing changes has failed.
at de.hybris.y2ysync.task.runner.ItemChangesProcessor.createError(ItemChangesProcessor.java:177) ~[y2ysyncserver.jar:?]
at de.hybris.y2ysync.task.runner.ItemChangesProcessor.run(ItemChangesProcessor.java:65) ~[y2ysyncserver.jar:?]
at de.hybris.platform.task.impl.DefaultTaskExecutionStrategy$1.execute(DefaultTaskExecutionStrategy.java:103) ~[processingserver.jar:?]
at de.hybris.platform.tx.Transaction.execute(Transaction.java:1187) ~[coreserver.jar:?]
at de.hybris.platform.tx.Transaction.execute(Transaction.java:1152) ~[coreserver.jar:?]
at de.hybris.platform.task.impl.DefaultTaskExecutionStrategy.run(DefaultTaskExecutionStrategy.java:95) ~[processingserver.jar:?]
... 7 more
Caused by: java.lang.IllegalStateException: There were errors during changes consumption. Please check the logs for details.
at de.hybris.deltadetection.impl.DefaultChangeDetectionService.consumeChanges(DefaultChangeDetectionService.java:385) ~[deltadetectionserver.jar:?]
at de.hybris.y2ysync.task.runner.internal.ProcessChangesTask.consumeChangesOrCreateConsumeMarkers(ProcessChangesTask.java:103) ~[y2ysyncserver.jar:?]
at de.hybris.y2ysync.task.runner.internal.ProcessChangesTask.execute(ProcessChangesTask.java:79) ~[y2ysyncserver.jar:?]
at de.hybris.y2ysync.task.runner.ItemChangesProcessor.run(ItemChangesProcessor.java:59) ~[y2ysyncserver.jar:?]
at de.hybris.platform.task.impl.DefaultTaskExecutionStrategy$1.execute(DefaultTaskExecutionStrategy.java:103) ~[processingserver.jar:?]
at de.hybris.platform.tx.Transaction.execute(Transaction.java:1187) ~[coreserver.jar:?]
at de.hybris.platform.tx.Transaction.execute(Transaction.java:1152) ~[coreserver.jar:?]
at de.hybris.platform.task.impl.DefaultTaskExecutionStrategy.run(DefaultTaskExecutionStrategy.java:95) ~[processingserver.jar:?]
... 7 more
Most likely getLink()
is returning null.
Try using the safe navigation feature of SpEL : 10.5.16 Safe Navigation operator
Before :
"#{getCatalogVersion().getCatalog().getId()}:#{getCatalogVersion().getVersion()}|#{getLink().getCatalogVersion().getCatalog().getId()}:#{getLink().getCatalogVersion().getVersion()}:#{getLink().getUid()}|#{getUid()}"
After :
"#{getCatalogVersion().getCatalog().getId()}:#{getCatalogVersion().getVersion()}|#{getLink()?.getCatalogVersion()?.getCatalog()?.getId()}:#{getLink()?.getCatalogVersion()?.getVersion()}:#{getLink()?.getUid()}|#{getUid()}"
Notice the ?.
before every method call which could be executed on a null value. Of course, the returned value of the method not being called is a null value.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks Robin, the examples I've seen online have been #{bean.someMethod()}, but where does getCatalogVersion() come from? Also, I think this is a bug in y2ysync because it is autogenerated. Have you seen any doc which describes what the info expression is used for? Is it part of delta detection do you know?
User | Count |
---|---|
8 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.