@Override @Transactional public UserProfile setAlerts( String userAuthId, List<String> monthlyAlerts, List<String> weeklyAlerts) { UserProfile user = getUserByAuthId(userAuthId); log.debug( "updating alerts for user: {}; Montly alerts: {}; weekly alerts: {}", new Object[] { user.getDisplayName(), StringUtils.join(monthlyAlerts, ","), StringUtils.join(weeklyAlerts, ",") }); List<String> allAlerts; if (monthlyAlerts != null && weeklyAlerts != null) { allAlerts = new ArrayList<String>(monthlyAlerts.size() + weeklyAlerts.size()); allAlerts.addAll(getAlertsList(monthlyAlerts, UserProfile.MONTHLY_ALERT_SUFFIX)); allAlerts.addAll(getAlertsList(weeklyAlerts, UserProfile.WEEKLY_ALERT_SUFFIX)); } else if (monthlyAlerts != null) { allAlerts = new ArrayList<String>(monthlyAlerts.size()); allAlerts.addAll(getAlertsList(monthlyAlerts, UserProfile.MONTHLY_ALERT_SUFFIX)); } else if (weeklyAlerts != null) { allAlerts = new ArrayList<String>(weeklyAlerts.size()); allAlerts.addAll(getAlertsList(weeklyAlerts, UserProfile.WEEKLY_ALERT_SUFFIX)); } else { allAlerts = new ArrayList<String>(0); } user.setAlertsList(allAlerts); hibernateTemplate.update(user); return user; }