cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

CMS Cockpit : Exception when trying to edit CMSLinkComponent without contentSlot assignment

Former Member
0 Likes
951

In the CMS Cockpit of 6.6, I enter the Navigation perspective and try to edit a navigation node entry which is a CMS Link Component. The editor area fails to load and I see an exception in the log :

 ROR [Thread-840] [BaseUICockpitPerspective] Item could not be activated.
 java.lang.IllegalArgumentException: Value is instanceof Collection but cannot be empty collection for key: contentSlots
         at de.hybris.platform.servicelayer.search.FlexibleSearchQuery.addQueryParameters(FlexibleSearchQuery.java:140) ~[coreserver.jar:?]
         at de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService.search(DefaultFlexibleSearchService.java:252) ~[coreserver.jar:?]
         at de.hybris.platform.servicelayer.internal.dao.AbstractItemDao.search(AbstractItemDao.java:68) ~[coreserver.jar:?]
         at de.hybris.platform.cms2.servicelayer.daos.impl.DefaultCMSPageDao.findPagesByContentSlotsAndPageStatuses(DefaultCMSPageDao.java:601) ~[cms2server.jar:?]
         at de.hybris.platform.cms2.servicelayer.daos.impl.DefaultCMSPageDao.findPagesByContentSlots(DefaultCMSPageDao.java:573) ~[cms2server.jar:?]
         at de.hybris.platform.cms2.servicelayer.services.impl.DefaultCMSPageService.getPagesForComponent(DefaultCMSPageService.java:685) ~[cms2server.jar:?]
         at de.hybris.platform.cmscockpit.services.security.impl.CMSCockpitUIAccessRightService.isObjectWritable(CMSCockpitUIAccessRightService.java:89) ~[cmscockpitserver.jar:?]
         at de.hybris.platform.cmscockpit.services.security.impl.CMSCockpitUIAccessRightService.isWritable(CMSCockpitUIAccessRightService.java:49) ~[cmscockpitserver.jar:?]
         at de.hybris.platform.cockpit.services.security.impl.DefaultUIAccessRightService.isWritable(DefaultUIAccessRightService.java:292) ~[cockpitserver.jar:?]
         at de.hybris.platform.cmscockpit.services.security.impl.CMSCockpitUIAccessRightService.isWritable(CMSCockpitUIAccessRightService.java:56) ~[cmscockpitserver.jar:?]
         at de.hybris.platform.cockpit.session.impl.AbstractEditorAreaController.isEditable(AbstractEditorAreaController.java:404) ~[cockpitserver.jar:?]
         at de.hybris.platform.cockpit.session.impl.DefaultEditorAreaController.resetSectionPanelModel(DefaultEditorAreaController.java:113) ~[cockpitserver.jar:?]
         at de.hybris.platform.cockpit.session.impl.DefaultEditorAreaListener.currentObjectChanged(DefaultEditorAreaListener.java:42) ~[cockpitserver.jar:?]
         at de.hybris.platform.cockpit.session.impl.EditorArea.fireCurrentObjectChanged(EditorArea.java:317) ~[cockpitserver.jar:?]
         at de.hybris.platform.cockpit.session.impl.EditorArea.setCurrentObject(EditorArea.java:556) ~[cockpitserver.jar:?]
         at de.hybris.platform.cockpit.session.impl.BaseUICockpitPerspective.activateItemInEditorArea(BaseUICockpitPerspective.java:333) [cockpitserver.jar:?]
         at de.hybris.platform.cmscockpit.session.impl.CmsCockpitPerspective.activateItemInEditorArea(CmsCockpitPerspective.java:189) [cmscockpitserver.jar:?]
         at de.hybris.platform.cockpit.session.impl.BaseUICockpitPerspective.activateItemInEditor(BaseUICockpitPerspective.java:389) [cockpitserver.jar:?]
         at de.hybris.platform.cmscockpit.navigationnode.browserarea.list.RelatedItemListRenderer$2.onEvent(RelatedItemListRenderer.java:109) [cmscockpitserver.jar:?]
         at org.zkoss.zk.ui.impl.EventProcessor.process0(EventProcessor.java:197) [zk-3.6.4-hybris-patched.jar:3.6.4]
         at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:141) [zk-3.6.4-hybris-patched.jar:3.6.4]
         at org.zkoss.zk.ui.impl.EventProcessingThreadImpl.process0(EventProcessingThreadImpl.java:519) [zk-3.6.4-hybris-patched.jar:3.6.4]
         at org.zkoss.zk.ui.impl.EventProcessingThreadImpl.run(EventProcessingThreadImpl.java:446) [zk-3.6.4-hybris-patched.jar:3.6.4]

If I go through the backoffice and assign the CMSLinkComponent instance a dummy content slot, the editorArea in the CMS cockpit loads fine but this is obviously not expected or wanted. This occurs also after the wizard is used to create a new CMS Link Component in the navigation perspective. The CMSLinkComponentModel is created fine, but the same error is seen in the log and also the editor doesn't load afterwards.

Any ideas ?

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Likes

We had similar issue with nested components and we fixed it by overriding findPagesByContentSlotsAndPageStatuses method from DefaultCMSPageDao to return empty list in case of no content slots.

Former Member
0 Likes

This is actually exactly what we ended up needing to do.

Answers (1)

Answers (1)

Former Member
0 Likes

Hi ,

I have done Hybris migration from 6.4 to 6.6 and I am facing a similar issue with custom component where CMSLinkComponent is used and getting following error. Did you fix your issue?

ERROR [Thread-64] [BaseUICockpitPerspective] Item could not be activated. java.lang.IllegalArgumentException: Value is instanceof Collection but cannot be empty collection for key: contentSlots at de.hybris.platform.servicelayer.search.FlexibleSearchQuery.addQueryParameters(FlexibleSearchQuery.java:140) ~[coreserver.jar:?] at de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService.search(DefaultFlexibleSearchService.java:252) ~[coreserver.jar:?] at de.hybris.platform.servicelayer.internal.dao.AbstractItemDao.search(AbstractItemDao.java:68) ~[coreserver.jar:?] at de.hybris.platform.cms2.servicelayer.daos.impl.DefaultCMSPageDao.findPagesByContentSlotsAndPageStatuses(DefaultCMSPageDao.java:601) ~[cms2server.jar:?] at de.hybris.platform.cms2.servicelayer.daos.impl.DefaultCMSPageDao.findPagesByContentSlots(DefaultCMSPageDao.java:573) ~[cms2server.jar:?] at de.hybris.platform.cms2.servicelayer.services.impl.DefaultCMSPageService.getPagesForComponent(DefaultCMSPageService.java:685) ~[cms2server.jar:?] at de.hybris.platform.cmscockpit.services.security.impl.CMSCockpitUIAccessRightService.isObjectWritable(CMSCockpitUIAccessRightService.java:89) ~[cmscockpitserver.jar:?] at de.hybris.platform.cmscockpit.services.security.impl.CMSCockpitUIAccessRightService.isWritable(CMSCockpitUIAccessRightService.java:49) ~[cmscockpitserver.jar:?] at de.hybris.platform.cockpit.services.security.impl.DefaultUIAccessRightService.isWritable(DefaultUIAccessRightService.java:292) ~[cockpitserver.jar:?] at de.hybris.platform.cmscockpit.services.security.impl.CMSCockpitUIAccessRightService.isWritable(CMSCockpitUIAccessRightService.java:56) ~[cmscockpitserver.jar:?] at de.hybris.platform.cockpit.session.impl.AbstractEditorAreaController.isEditable(AbstractEditorAreaController.java:404) ~[cockpitserver.jar:?] at de.hybris.platform.cockpit.session.impl.DefaultEditorAreaController.resetSectionPanelModel(DefaultEditorAreaController.java:113) ~[cockpitserver.jar:?] at de.hybris.platform.cockpit.session.impl.BaseUICockpitPerspective.activateItemInPopupEditor(BaseUICockpitPerspective.java:267) [cockpitserver.jar:?] at de.hybris.platform.cockpit.session.impl.EditorRowRenderer.activateItemInPopupEditor(EditorRowRenderer.java:462) [cockpitserver.jar:?] at de.hybris.platform.cockpit.session.impl.EditorRowRenderer$2.openItemRequestPerformed(EditorRowRenderer.java:350) [cockpitserver.jar:?] at de.hybris.platform.cockpit.model.referenceeditor.simple.impl.DefaultSimpleReferenceSelectorListener.doOpenReferencedItem(DefaultSimpleReferenceSelectorListener.java:212) [cockpitserver.jar:?] at de.hybris.platform.cockpit.model.referenceeditor.simple.AbstractSimpleReferenceSelector.fireOpenReferencedItem(AbstractSimpleReferenceSelector.java:95) [cockpitserver.jar:?] at de.hybris.platform.cockpit.model.referenceeditor.collection.CollectionEditor.doCollectionItemDoubleClicked(CollectionEditor.java:313) [cockpitserver.jar:?] at de.hybris.platform.cockpit.model.referenceeditor.collection.CollectionEditor$2$3.onEvent(CollectionEditor.java:413) [cockpitserver.jar:?] at org.zkoss.zk.ui.impl.EventProcessor.process0(EventProcessor.java:197) [zk-3.6.4-hybris-patched.jar:3.6.4] at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:141) [zk-3.6.4-hybris-patched.jar:3.6.4] at org.zkoss.zk.ui.impl.EventProcessingThreadImpl.process0(EventProcessingThreadImpl.java:519) [zk-3.6.4-hybris-patched.jar:3.6.4] at org.zkoss.zk.ui.impl.EventProcessingThreadImpl.run(EventProcessingThreadImpl.java:446) [zk-3.6.4-hybris-patched.jar:3.6.4]