-
Type: Bug
-
Status: Resolved
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 5.8.0-HF06, 5.9.2
-
Component/s: Dashboard / OpenSocial (deprecated)
They both define a complex property with the same name, but not with the same structure.
In gadget.xsd:
<xs:complexType name="properties"> <xs:sequence> <xs:element name="property" type="nxs:property" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> <xs:complexType name="property"> <xs:sequence> <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> <xs:element name="value" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType>
In wcopensocial.xsd:
<xs:complexType name="properties"> <xs:sequence> <xs:element name="property" type="nxs:property" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> <xs:complexType name="property"> <xs:sequence> <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1" /> <xs:element name="value" type="xs:string" minOccurs="1" maxOccurs="1" /> </xs:sequence> </xs:complexType>
This leads to the following exception when initializing the dashboard (random, depending of the deployment order):
Caused by: java.lang.ClassCastException: org.nuxeo.ecm.core.storage.sql.CollectionFragment cannot be cast to org.nuxeo.ecm.core.storage.sql.SimpleFragment
at org.nuxeo.ecm.core.storage.sql.Node.makeSimpleProperty(Node.java:244)
at org.nuxeo.ecm.core.storage.sql.Node.getSimpleProperty(Node.java:228)
at org.nuxeo.ecm.core.storage.sql.coremodel.SQLSession.makeProperties(SQLSession.java:1056)
at org.nuxeo.ecm.core.storage.sql.coremodel.SQLSession.makeProperty(SQLSession.java:1000)
at org.nuxeo.ecm.core.storage.sql.coremodel.SQLComplexProperty.getProperty(SQLComplexProperty.java:117)
at org.nuxeo.ecm.core.storage.sql.coremodel.SQLComplexProperty.getProperties(SQLComplexProperty.java:126)
at org.nuxeo.ecm.core.storage.sql.coremodel.SQLComplexProperty.getValue(SQLComplexProperty.java:76)
at org.nuxeo.ecm.core.storage.sql.coremodel.SQLComplexListProperty.getValue(SQLComplexListProperty.java:75)
at org.nuxeo.ecm.core.storage.sql.coremodel.SQLComplexListProperty.getValue(SQLComplexListProperty.java:37)
at org.nuxeo.ecm.core.storage.sql.coremodel.SQLComplexProperty.getPropertyValue(SQLComplexProperty.java:181)
at org.nuxeo.ecm.core.storage.sql.coremodel.SQLDocumentLive.readDocumentPart(SQLDocumentLive.java:157)
at org.nuxeo.ecm.core.api.DocumentModelFactory.createDataModel(DocumentModelFactory.java:255)