=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/DataSet.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/DataSet.java 2015-09-13 15:47:21 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataset/DataSet.java 2015-09-13 16:04:26 +0000 @@ -292,16 +292,9 @@ { Set toRemove = Sets.difference( sources, updates ); Set toAdd = Sets.difference( updates, sources ); - - for ( OrganisationUnit unit : toRemove ) - { - unit.getDataSets().remove( this ); - } - for ( OrganisationUnit unit : toAdd ) - { - unit.getDataSets().add( this ); - } + toRemove.parallelStream().forEach( u -> u.getDataSets().remove( this ) ); + toAdd.parallelStream().forEach( u -> u.getDataSets().add( this ) ); sources.clear(); sources.addAll( updates ); @@ -324,15 +317,8 @@ Set toRemove = Sets.difference( dataElements, updates ); Set toAdd = Sets.difference( updates, dataElements ); - for ( DataElement element : toRemove ) - { - element.getDataSets().remove( this ); - } - - for ( DataElement element : toAdd ) - { - element.getDataSets().add( this ); - } + toRemove.parallelStream().forEach( d -> d.getDataSets().remove( this ) ); + toAdd.parallelStream().forEach( d -> d.getDataSets().add( this ) ); dataElements.clear(); dataElements.addAll( updates ); === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnit.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnit.java 2015-09-13 15:47:21 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnit.java 2015-09-13 16:04:26 +0000 @@ -278,16 +278,9 @@ Set toRemove = Sets.difference( dataSets, updates ); Set toAdd = Sets.difference( updates, dataSets ); - for ( DataSet dataSet : toRemove ) - { - dataSet.getSources().remove( this ); - } - - for ( DataSet dataSet : toAdd ) - { - dataSet.getSources().add( this ); - } - + toRemove.parallelStream().forEach( d -> d.getSources().remove( this ) ); + toAdd.parallelStream().forEach( d -> d.getSources().add( this ) ); + dataSets.clear(); dataSets.addAll( updates ); } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/Program.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/Program.java 2015-09-13 15:47:21 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/Program.java 2015-09-13 16:04:26 +0000 @@ -171,15 +171,8 @@ Set toRemove = Sets.difference( organisationUnits, updates ); Set toAdd = Sets.difference( updates, organisationUnits ); - for ( OrganisationUnit unit : toRemove ) - { - unit.getPrograms().remove( this ); - } - - for ( OrganisationUnit unit : toAdd ) - { - unit.getPrograms().add( this ); - } + toRemove.parallelStream().forEach( u -> u.getPrograms().remove( this ) ); + toAdd.parallelStream().forEach( u -> u.getPrograms().add( this ) ); organisationUnits.clear(); organisationUnits.addAll( updates );