23 lines
1.2 KiB
Diff
23 lines
1.2 KiB
Diff
# UNDF: UNDF-2026-000000518
|
|
--- a/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/BeanInfo.java
|
|
+++ b/independent-projects/arc/processor/src/main/java/io/quarkus/arc/processor/BeanInfo.java
|
|
@@ -515,11 +515,11 @@ public class BeanInfo implements InjectionTargetInfo {
|
|
public List<DecoratorInfo> getBoundDecorators() {
|
|
if (decoratedMethods.isEmpty()) {
|
|
return Collections.emptyList();
|
|
}
|
|
- List<DecoratorInfo> bound = new ArrayList<>();
|
|
+ // Use LinkedHashSet for O(1) dedup while preserving insertion order before sort.
|
|
+ Set<DecoratorInfo> seen = new LinkedHashSet<>();
|
|
for (DecorationInfo decoration : decoratedMethods.values()) {
|
|
for (DecoratorMethod dm : decoration.decoratorMethods) {
|
|
- if (!bound.contains(dm.decorator)) {
|
|
- bound.add(dm.decorator);
|
|
- }
|
|
+ seen.add(dm.decorator);
|
|
}
|
|
}
|
|
+ List<DecoratorInfo> bound = new ArrayList<>(seen);
|
|
// Sort by priority (highest goes first) and by bean class (reversed lexicographic-order)
|
|
Collections.sort(bound,
|
|
Comparator.comparing(DecoratorInfo::getPriority)
|