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

clebertsuconic pushed a commit to branch new-logging
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git

commit 4fd4a1f8d8f23d10908372b4c1ca9e93a236ad88
Author: Clebert Suconic <[email protected]>
AuthorDate: Thu Jul 21 10:42:08 2022 -0400

    Enforcing exception as the last argument
---
 .../java/org/apache/activemq/artemis/logprocessor/LogProcessor.java   | 4 ++++
 .../apache/activemq/artemis/logprocessor/annotation/LogBundle.java    | 2 ++
 .../java/org/apache/activemq/artemis/logprocessor/SimpleBundle.java   | 2 +-
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git 
a/artemis-log-processor/src/main/java/org/apache/activemq/artemis/logprocessor/LogProcessor.java
 
b/artemis-log-processor/src/main/java/org/apache/activemq/artemis/logprocessor/LogProcessor.java
index 2d7c7f706a..5f077ab0cc 100644
--- 
a/artemis-log-processor/src/main/java/org/apache/activemq/artemis/logprocessor/LogProcessor.java
+++ 
b/artemis-log-processor/src/main/java/org/apache/activemq/artemis/logprocessor/LogProcessor.java
@@ -383,6 +383,10 @@ public class LogProcessor extends AbstractProcessor {
             debug("Parameter " + parameter + (isException? "is" : "is not") + 
" an exception");
          }
 
+         if (bundleAnnotation.enforceExceptionParameterAsLast() && isException 
&& parameters.hasNext()) {
+            throw new IllegalArgumentException("Exception argument " + 
parameter + " has to be the last argument on the list. Look at " + 
executableMember);
+         }
+
          if (!isException) {
             nonExceptionParameters.add(parameter);
          }
diff --git 
a/artemis-log-processor/src/main/java/org/apache/activemq/artemis/logprocessor/annotation/LogBundle.java
 
b/artemis-log-processor/src/main/java/org/apache/activemq/artemis/logprocessor/annotation/LogBundle.java
index e8910bbaf1..fbfcb37fc0 100644
--- 
a/artemis-log-processor/src/main/java/org/apache/activemq/artemis/logprocessor/annotation/LogBundle.java
+++ 
b/artemis-log-processor/src/main/java/org/apache/activemq/artemis/logprocessor/annotation/LogBundle.java
@@ -27,4 +27,6 @@ import java.lang.annotation.Target;
 public @interface LogBundle {
 
    String projectCode();
+
+   boolean enforceExceptionParameterAsLast() default true;
 }
diff --git 
a/artemis-log-processor/src/test/java/org/apache/activemq/artemis/logprocessor/SimpleBundle.java
 
b/artemis-log-processor/src/test/java/org/apache/activemq/artemis/logprocessor/SimpleBundle.java
index 5780e13abd..a272894162 100644
--- 
a/artemis-log-processor/src/test/java/org/apache/activemq/artemis/logprocessor/SimpleBundle.java
+++ 
b/artemis-log-processor/src/test/java/org/apache/activemq/artemis/logprocessor/SimpleBundle.java
@@ -25,7 +25,7 @@ import 
org.apache.activemq.artemis.logprocessor.annotation.LogMessage;
 import org.apache.activemq.artemis.logprocessor.annotation.Message;
 import org.slf4j.Logger;
 
-@LogBundle(projectCode = "TST")
+@LogBundle(projectCode = "TST", enforceExceptionParameterAsLast = false)
 public interface SimpleBundle {
 
    SimpleBundle MESSAGES = CodeFactory.getCodeClass(SimpleBundle.class);

Reply via email to