cancel
Showing results for 
Search instead for 
Did you mean: 

Backoffice Crash in v2205

Raheel
Newcomer
0 Kudos

Hi, I have 2 Backoffice in a cluster and every now and then one or the other crashes with an error as below.

ERROR [hybrisHTTP40] [10.181.254.45] [DefaultCockpitComponentDefinitionService] Duplicated component definition for com.hybris.cockpitng.widgets.common.custom.advancedsearchengine: Custom Advanced Search Engine@extension://councilonlinebackoffice and Custom Advanced Search Engine@null
ERROR [hybrisHTTP40] [10.181.254.45] [DefaultCockpitComponentDefinitionService] Duplicated component definition for com.hybris.cockpitng.custom.cs.advancedsearch: Customer support backoffice Custom Advanced Search@extension://councilonlinebackoffice and Customer support backoffice Custom Advanced Search@null

The backoffice explorer tree looks like this after a crash (node the Heading Personal Data Reports>Node1 and Node2 appears only after the crash. Anyone has any idea how they fixed this

Raheel_0-1707342192899.png

 

View Entire Topic
stephenielabovitz
Discoverer

I had issues with 'duplicate component' and a lot of backoffice errors when we upgraded to 2205 recently.  Many of my issues were because of the way the widget definitions were extended in our custom backoffice project.

I had to fix a few issues:

1) If you are extending a widget, the folder containing the extended child definition.xml has to be in a differently named folder than the original parent widget's folder.  

2) If you want to be able to keep the parent widget and also use the new child widget at other locations, give the child widget definition.xml a unique id and use that new id in your backoffice-widgets.xml in the slots where you need the new widget.

<widget-definition id="com.hybris.my.custom.child.widget.id.here" extends="com.hybris.pcmbackoffice.parent.widget.id.here"

3) In your xxxbackoffice-widgets.xml, if you are using a widget-extension to remove the parent widget in order to replace it with your new child widget, do the 'remove' step in a separate widget-extension.  Don't put the remove and the new one in the same widget-extension.    Example:

<widget-extension widgetId="pcmbackoffice-dashboard-view">
<remove widgetId="pcmbackoffice-dashboard-view-data-quality-chart"/>
</widget-extension>
<widget-extension widgetId="pcmbackoffice-dashboard-view">
<widget id="pcmbackoffice-dashboard-view-data-quality-chart" widgetDefinitionId="my.custom.child.widget.id" slotId="dashboardWidgets" template="false">
</widget-extension>

4) If you want your child definition.xml to automatically override the parent widget, don't give the child definition.xml an id at all so that your child widget will automatically replace all instances where the parent is wired in.   Example

<widget-definition extends="com.hybris.pcmbackoffice.parent.widget.id.here"

Hope something here helps.