=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/programstage/UpdateProgramStageAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/programstage/UpdateProgramStageAction.java 2015-11-23 06:52:49 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-program/src/main/java/org/hisp/dhis/trackedentity/action/programstage/UpdateProgramStageAction.java 2015-11-24 10:38:36 +0000 @@ -430,11 +430,11 @@ attributeService.updateAttributeValues( programStage, jsonAttributeValues ); } - programStageService.updateProgramStage( programStage ); - Set programStageDataElements = new HashSet<>( programStage.getProgramStageDataElements() ); - + + programStage.getProgramStageDataElements().clear(); + for ( int i = 0; i < this.selectedDataElementsValidator.size(); i++ ) { DataElement dataElement = dataElementService.getDataElement( selectedDataElementsValidator.get( i ) ); @@ -465,13 +465,17 @@ programStageDataElements.remove( programStageDataElement ); } - } - + + programStage.getProgramStageDataElements().add( programStageDataElement ); + } + + programStageService.updateProgramStage( programStage ); + for ( ProgramStageDataElement psdeDelete : programStageDataElements ) - { + { programStageDataElementService.deleteProgramStageDataElement( psdeDelete ); } - + programId = programStage.getProgram().getId(); return SUCCESS;