You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by pt...@apache.org on 2022/09/09 18:19:31 UTC

[ignite-3] branch main updated: IGNITE-17664 Fix conflicting TX and CLIENT error group ids (#1069)

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

ptupitsyn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 8fbbb62faf IGNITE-17664 Fix conflicting TX and CLIENT error group ids (#1069)
8fbbb62faf is described below

commit 8fbbb62faf8e821beae28e8fe82d151e112044cb
Author: Pavel Tupitsyn <pt...@apache.org>
AuthorDate: Fri Sep 9 21:19:25 2022 +0300

    IGNITE-17664 Fix conflicting TX and CLIENT error group ids (#1069)
---
 .../java/org/apache/ignite/lang/ErrorGroups.java    |  2 +-
 .../java/org/apache/ignite/lang/ErrorGroupTest.java | 21 +++++++++++++++++++++
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/modules/core/src/main/java/org/apache/ignite/lang/ErrorGroups.java b/modules/core/src/main/java/org/apache/ignite/lang/ErrorGroups.java
index 2c15665332..3fea37b76a 100755
--- a/modules/core/src/main/java/org/apache/ignite/lang/ErrorGroups.java
+++ b/modules/core/src/main/java/org/apache/ignite/lang/ErrorGroups.java
@@ -176,7 +176,7 @@ public class ErrorGroups {
     /** Transactions error group. */
     public static class Transactions {
         /** Transactions error group. */
-        public static final ErrorGroup TX_ERR_GROUP = ErrorGroup.newGroup("TX", 3);
+        public static final ErrorGroup TX_ERR_GROUP = ErrorGroup.newGroup("TX", 7);
 
         /** Error on creation of tx state storage. */
         public static final int TX_STATE_STORAGE_CREATE_ERR = TX_ERR_GROUP.registerErrorCode(1);
diff --git a/modules/core/src/test/java/org/apache/ignite/lang/ErrorGroupTest.java b/modules/core/src/test/java/org/apache/ignite/lang/ErrorGroupTest.java
index 3063d33398..d55e4f6802 100644
--- a/modules/core/src/test/java/org/apache/ignite/lang/ErrorGroupTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/lang/ErrorGroupTest.java
@@ -19,7 +19,11 @@ package org.apache.ignite.lang;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.equalTo;
+import static org.junit.jupiter.api.Assertions.fail;
 
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.UUID;
 import org.apache.ignite.lang.ErrorGroups.Common;
 import org.junit.jupiter.api.Test;
@@ -77,4 +81,21 @@ class ErrorGroupTest {
         // Then error code and traceId are not duplicated
         assertThat(errorMessage, equalTo("IGN-CMN-1 TraceId:24103638-d079-4a19-a8f6-ca9c23662908 I'm the\n reason\n"));
     }
+
+    @SuppressWarnings({"rawtypes", "OptionalGetWithoutIsPresent"})
+    @Test
+    void groupIdsAreUnique() throws IllegalAccessException {
+        Map<Integer, ErrorGroup> errGroups = new HashMap<>();
+
+        for (Class cls : ErrorGroups.class.getDeclaredClasses()) {
+            var errGroupField = Arrays.stream(cls.getFields()).filter(f -> f.getName().endsWith("_ERR_GROUP")).findFirst().get();
+            var errGroup = (ErrorGroup) errGroupField.get(null);
+
+            var existing = errGroups.putIfAbsent(errGroup.code(), errGroup);
+
+            if (existing != null) {
+                fail("Duplicate error group id: " + errGroup.code() + " (" + existing.name() + ", " + errGroup.name() + ")");
+            }
+        }
+    }
 }