diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/group/service/GroupWritePlatformServiceJpaRepositoryImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/group/service/GroupWritePlatformServiceJpaRepositoryImpl.java index ed83e635d..fff6b98c1 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/group/service/GroupWritePlatformServiceJpaRepositoryImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/group/service/GroupWritePlatformServiceJpaRepositoryImpl.java @@ -218,8 +218,15 @@ public class GroupWritePlatformServiceJpaRepositoryImpl implements GroupWritePla * param */ if (!groupLevel.isSuperParent()) { + final String parentIdParamName = "parentId"; - final Long parentId = groupForUpdate.getParent().getId(); + Long parentId = null; + final Group presentParentGroup = groupForUpdate.getParent(); + + if (presentParentGroup != null) { + parentId = presentParentGroup.getId(); + } + if (command.isChangeInLongParameterNamed(parentIdParamName, parentId)) { final Long newValue = command.longValueOfParameterNamed(parentIdParamName); @@ -247,6 +254,10 @@ public class GroupWritePlatformServiceJpaRepositoryImpl implements GroupWritePla } groupForUpdate.setParent(newParentGroup); + + // Parent has changed, re-generate as parent is changed + groupForUpdate.generateHierarchy(); + } }