=== modified file 'dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/importers/DefaultIdentifiableObjectImporter.java' --- dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/importers/DefaultIdentifiableObjectImporter.java 2012-05-22 16:20:33 +0000 +++ dhis-2/dhis-dxf2/src/main/java/org/hisp/dhis/dxf2/metadata/importers/DefaultIdentifiableObjectImporter.java 2012-05-23 11:12:18 +0000 @@ -236,7 +236,7 @@ newAttributeValues( object, attributeValues ); newExpression( object, "leftSide", leftSide ); newExpression( object, "rightSide", rightSide ); - newDataElementOperands( object, "compulsoryDataElementOperands", compulsoryDataElementOperands ); + // newDataElementOperands( object, "compulsoryDataElementOperands", compulsoryDataElementOperands ); newDataElementOperands( object, "greyedFields", greyedFields ); sessionFactory.getCurrentSession().flush(); @@ -271,10 +271,12 @@ if ( ReflectionUtils.findGetterMethod( field, object ) != null ) { - dataElementOperands = ReflectionUtils.invokeGetterMethod( field, object ); + Set detachedDataElementOperands = ReflectionUtils.invokeGetterMethod( field, object ); + dataElementOperands = new HashSet( detachedDataElementOperands ); - if ( dataElementOperands.size() > 0 ) + if ( detachedDataElementOperands.size() > 0 ) { + detachedDataElementOperands.clear(); ReflectionUtils.invokeSetterMethod( field, object, new HashSet() ); } } @@ -325,7 +327,6 @@ dataElementOperand.setId( 0 ); dataElementOperandService.addDataElementOperand( dataElementOperand ); - sessionFactory.getCurrentSession().flush(); } ReflectionUtils.invokeSetterMethod( field, object, dataElementOperands );