on 10-31-2014 2:24 PM
I'm trying to start workflow from interceptor and it start's but the change i've made in model (the change that interceptor intercept) is not saved and hybris throws error:
Caused by: de.hybris.platform.servicelayer.exceptions.ModelSavingException: already got modification listener de.hybris.platform.servicelayer.internal.converter
.impl.ItemModelConverter$MyHistoryListenerAdapter@7891a582 - cannot set de.hybris.platform.servicelayer.internal.converter.impl.ItemModelConverter$MyHistoryList
enerAdapter@220937a5
at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAll(DefaultModelService.java:606)
at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.save(DefaultModelService.java:545)
at de.hybris.platform.cockpit.services.impl.NewItemServiceImpl.createNewItemServiceLayer(NewItemServiceImpl.java:361)
... 46 more
Caused by: java.lang.IllegalStateException: already got modification listener de.hybris.platform.servicelayer.internal.converter.impl.ItemModelConverter$MyHisto
ryListenerAdapter@7891a582 - cannot set de.hybris.platform.servicelayer.internal.converter.impl.ItemModelConverter$MyHistoryListenerAdapter@220937a5
at de.hybris.platform.servicelayer.internal.model.impl.ModelValueHistory.setListener(ModelValueHistory.java:177)
at de.hybris.platform.servicelayer.internal.converter.impl.ItemModelConverter.addModelModificationListener(ItemModelConverter.java:408)
at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelContext.afterPersist(DefaultModelContext.java:99)
at de.hybris.platform.servicelayer.internal.model.impl.ModelContextProxy.afterPersist(ModelContextProxy.java:105)
at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.postProcessJaloSavedItems(DefaultModelService.java:1033)
at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.doJaloPersistence(DefaultModelService.java:643)
at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.persistWrappers(DefaultModelService.java:970)
at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.performPersistenceOperations(DefaultModelService.java:623)
at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAllInternal(DefaultModelService.java:617)
at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAll(DefaultModelService.java:597)
... 48 more
And when i remove start of workflow from interceptor everything goes fine. Has anyone run into the same problem?
Hi Michael,
I think this is because the two operations (workflow processing and model save) have to be asynchronuous and independent.
It would be better in your case to use events to trigger your workflow. Send an asynch event in the interceptor, an eventListener would listen to it and triggers the workflow.
Hope that helps.
Best Regards,
Amel.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
5 | |
1 | |
1 | |
1 | |
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.