This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openwebbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new 0d022c1  [OWB-1401] sort intercepted methods
0d022c1 is described below

commit 0d022c1ef8a76f02e4d7b3efe294ad877e2732a2
Author: Romain Manni-Bucau <rmannibu...@gmail.com>
AuthorDate: Wed Jan 26 17:07:58 2022 +0100

    [OWB-1401] sort intercepted methods
---
 .../java/org/apache/webbeans/portable/AbstractProducer.java    | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git 
a/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractProducer.java
 
b/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractProducer.java
index 599c493..d2c0c1f 100644
--- 
a/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractProducer.java
+++ 
b/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractProducer.java
@@ -42,6 +42,8 @@ import 
org.apache.webbeans.intercept.InterceptorResolutionService.BeanIntercepto
 import org.apache.webbeans.proxy.InterceptorDecoratorProxyFactory;
 import org.apache.webbeans.proxy.OwbInterceptorProxy;
 
+import static java.util.Comparator.comparing;
+
 public abstract class AbstractProducer<T> implements Producer<T>
 {
 
@@ -99,8 +101,12 @@ public abstract class AbstractProducer<T> implements 
Producer<T>
 
             ClassLoader classLoader = 
webBeansContext.getApplicationBoundaryService().getBoundaryClassLoader(annotatedType.getJavaClass());
 
-            Method[] businessMethods = methodInterceptors.keySet().toArray(new 
Method[methodInterceptors.size()]);
-            Method[] nonInterceptedMethods = 
interceptorInfo.getNonInterceptedMethods().toArray(new 
Method[interceptorInfo.getNonInterceptedMethods().size()]);
+            Method[] businessMethods = methodInterceptors.keySet().stream()
+                    
.sorted(comparing(Method::getName).thenComparing(Method::getParameterCount).thenComparing(Method::toGenericString))
+                    .toArray(Method[]::new);
+            Method[] nonInterceptedMethods = 
interceptorInfo.getNonInterceptedMethods().stream()
+                    
.sorted(comparing(Method::getName).thenComparing(Method::getParameterCount).thenComparing(Method::toGenericString))
+                    .toArray(Method[]::new);
 
             proxyClass = (Class<? extends T>) pf.createProxyClass(bean, 
classLoader, annotatedType.getJavaClass(), businessMethods, 
nonInterceptedMethods);
 

Reply via email to