[CMA-33] NodeService's getNode() method fails to return properties of type ArrayList<String> Created: 27/Aug/08  Updated: 21/May/10  Resolved: 29/Aug/08

Status: Closed
Project: Remote Alfresco API rivet
Component/s: None
Affects Version/s: None
Fix Version/s: 1.4.2

Type: Bug Priority: Major
Reporter: Al El-Nattar Assignee: Al El-Nattar
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   
If a one of the Alfresco properties for a node is of type ArrayList<String> (i.e. d:text, multiple=true) a call to NodeService.getNode() asking for that property throws a Castor exception:

com.rivetlogic.core.cma.exception.CmaRuntimeException: org.exolab.castor.xml.MarshalException: element "propertyValue" occurs more than once. (parent class: org.exolab.castor.mapping.MapItem)
 location: /property/property/property/property/property/propertyValue{File: [not available]; line: 3; column: 1650}
       at com.rivetlogic.core.cma.mapping.impl.CmaCastorUnmarshaller.unmarshal(CmaCastorUnmarshaller.java:57)
       at com.rivetlogic.core.cma.rest.impl.RestExecuterImpl.processResponse(RestExecuterImpl.java:237)
       at com.rivetlogic.core.cma.rest.impl.RestExecuterImpl.processResponse(RestExecuterImpl.java:205)
       at com.rivetlogic.core.cma.rest.impl.RestExecuterImpl.execute(RestExecuterImpl.java:93)
       at com.rivetlogic.core.cma.rest.impl.RestExecuterImpl.execute(RestExecuterImpl.java:74)
       at com.rivetlogic.core.cma.impl.NodeServiceImpl.execute(NodeServiceImpl.java:1483)
       at com.rivetlogic.core.cma.impl.NodeServiceImpl.getNode(NodeServiceImpl.java:565)
       at ucs.common.contentmgmt.AlfrescoContentManager.getRivetNodeForGUID(AlfrescoContentManager.java:2015)
       at ucs.common.contentmgmt.AlfrescoContentManager.getApplicationContentMetaData(AlfrescoContentManager.java:1815)
       at ucs.common.contentmgmt.AlfrescoContentManager.searchForContentByGUID(AlfrescoContentManager.java:641)
       at ucs.common.contentmgmt.AlfrescoContentManager.searchForContentByGUID(AlfrescoContentManager.java:1071)
       at ucs.common.contentmgmt.ContentManagementHelper.searchForContentByGUID(ContentManagementHelper.java:182)
       at ucs.common.contentmgmt.test.GetMetaDataAndContentByGuidTest.runTest(GetMetaDataAndContentByGuidTest.java:48)
       at junit.framework.TestCase.runBare(TestCase.java:134)
       at junit.framework.TestResult$1.protect(TestResult.java:110)
       at junit.framework.TestResult.runProtected(TestResult.java:128)
       at junit.framework.TestResult.run(TestResult.java:113)
       at junit.framework.TestCase.run(TestCase.java:124)
       at junit.framework.TestSuite.runTest(TestSuite.java:232)
       at junit.framework.TestSuite.run(TestSuite.java:227)
       at ucs.common.contentmgmt.test.MainTest.main(MainTest.java:52)
Caused by: org.exolab.castor.xml.MarshalException: element "propertyValue" occurs more than once. (parent class: org.exolab.castor.mapping.MapItem)
 location: /property/property/property/property/property/propertyValue{File: [not available]; line: 3; column: 1650}
       at org.exolab.castor.xml.Unmarshaller.convertSAXExceptionToMarshalException(Unmarshaller.java:761)
       at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:727)
       at com.rivetlogic.core.cma.mapping.impl.CmaCastorUnmarshaller.unmarshal(CmaCastorUnmarshaller.java:55)
       ... 20 more
Caused by: ValidationException: element "propertyValue" occurs more than once. (parent class: org.exolab.castor.mapping.MapItem)
 location: /property/property/property/property/property/propertyValue
       at org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.java:984)
       at org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.java:1159)
       at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
       at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
       at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
       at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
       at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
       at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
       at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
       at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
       at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
       at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:715)
       ... 21 more

I believe this has been fixed in NodeService.getProperties() so it just needs to be fixed here as well.

 Comments   
Comment by hlim [ 29/Aug/08 ]
forgot to resolve it.
Generated at Sat Feb 10 05:51:27 GMT 2024 using Jira 8.1.3#801003-sha1:6b6f07cffadda9a0d6efe24639daed8ce94dcdd6.