cancel
Showing results for 
Search instead for 
Did you mean: 

Y2Ysync error on zip export

Former Member
0 Kudos

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
 


Accepted Solutions (0)

Answers (1)

Answers (1)

former_member224482
Active Contributor
0 Kudos

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.

Former Member
0 Kudos

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?