private void buildValidationMessages(ValidationIssue issue, String superKey) { String key; if (StringUtils.isEmpty(superKey)) { key = issue.getSubject(); } else { key = superKey + '.' + issue.getSubject(); } for (Map.Entry<String, ValidationIssue> entry : issue.getSubissues().entrySet()) { buildValidationMessages(entry.getValue(), key); } if (issue.hasErrors()) { List<String> msgs = new ArrayList<>(); for (ValidationError ve : issue.getErrors()) { msgs.add(ve.getMessage()); } String msg = StringUtils.join(msgs, "; "); String msgKey = StringUtils.isEmpty(key) ? VALIDATION_KEY : key; messages.put(msgKey, msg); } }