public void moveItemToBacklog(BacklogItem item, Backlog backlog, boolean ignoreIterationGoal) { Backlog oldBacklog = item.getBacklog(); oldBacklog.getBacklogItems().remove(item); item.setBacklog(backlog); backlog.getBacklogItems().add(item); historyBusiness.updateBacklogHistory(oldBacklog.getId()); historyBusiness.updateBacklogHistory(backlog.getId()); if (item.getIterationGoal() != null && !ignoreIterationGoal) { item.getIterationGoal().getBacklogItems().remove(item); item.setIterationGoal(null); } if (!backlogBusiness.isUnderSameProduct(oldBacklog, backlog)) { // remove only product themes Collection<BusinessTheme> removeThese = new ArrayList<BusinessTheme>(); ; for (BusinessTheme theme : item.getBusinessThemes()) { if (!theme.isGlobal()) { removeThese.add(theme); } } for (BusinessTheme theme : removeThese) { item.getBusinessThemes().remove(theme); } } }