Skip to content

Commit

Permalink
ArC: detect duplicate bean identifiers
Browse files Browse the repository at this point in the history
  • Loading branch information
Ladicek committed Dec 6, 2023
1 parent 903cd31 commit 7a9d542
Showing 1 changed file with 23 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1583,6 +1583,29 @@ private void validateBeans(List<Throwable> errors, Consumer<BytecodeTransformer>
}
}
}

List<Map.Entry<String, List<BeanInfo>>> duplicateBeanIds = beans.stream()
.collect(Collectors.groupingBy(BeanInfo::getIdentifier))
.entrySet()
.stream()
.filter(entry -> entry.getValue().size() > 1)
.collect(Collectors.toList());
if (!duplicateBeanIds.isEmpty()) {
String separator = "====================";
StringBuilder error = new StringBuilder("\n")
.append(separator).append(separator).append(separator).append(separator).append("\n")
.append("Multiple beans with the same identifier found!\n")
.append("----------------------------------------------\n")
.append("This is an internal error. Please report a bug and attach the following listing.\n\n");
for (Map.Entry<String, List<BeanInfo>> entry : duplicateBeanIds) {
error.append(entry.getKey()).append(" -> ").append(entry.getValue().size()).append(" beans:\n");
for (BeanInfo bean : entry.getValue()) {
error.append("- ").append(bean).append("\n");
}
}
error.append(separator).append(separator).append(separator).append(separator).append("\n");
errors.add(new DeploymentException(error.toString()));
}
}

private void findNamespaces(BeanInfo bean, Set<String> namespaces) {
Expand Down

0 comments on commit 7a9d542

Please sign in to comment.