sort getMethods
diff --git a/plugins/json/src/main/java/org/apache/struts2/json/JSONUtil.java b/plugins/json/src/main/java/org/apache/struts2/json/JSONUtil.java
index 8c443e5..4de1e94 100644
--- a/plugins/json/src/main/java/org/apache/struts2/json/JSONUtil.java
+++ b/plugins/json/src/main/java/org/apache/struts2/json/JSONUtil.java
@@ -35,6 +35,7 @@
import java.util.Set;
import java.util.regex.Pattern;
import java.util.zip.GZIPOutputStream;
+import java.util.Arrays;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -410,7 +411,9 @@
public static Method[] listSMDMethods(Class clazz, boolean ignoreInterfaces) {
final List<Method> methods = new LinkedList<>();
if (ignoreInterfaces) {
- for (Method method : clazz.getMethods()) {
+ Method[] SMDMethods = clazz.getMethods();
+ Arrays.sort(SMDMethods, (a, b) -> a.toString().compareTo(b.toString()));
+ for (Method method : SMDMethods) {
SMDMethod smdMethodAnnotation = method.getAnnotation(SMDMethod.class);
if (smdMethodAnnotation != null) {
methods.add(method);
@@ -421,7 +424,9 @@
// order encountered
JSONUtil.visitInterfaces(clazz, new JSONUtil.ClassVisitor() {
public boolean visit(Class aClass) {
- for (Method method : aClass.getMethods()) {
+ Method[] SMDMethods = aClass.getMethods();
+ Arrays.sort(SMDMethods, (a, b) -> a.toString().compareTo(b.toString()));
+ for (Method method : SMDMethods) {
SMDMethod smdMethodAnnotation = method.getAnnotation(SMDMethod.class);
if ((smdMethodAnnotation != null) && !methods.contains(method)) {
methods.add(method);