diff --git a/src/test/java/org/eclipse/yasson/customization/model/CreatorConstructorSetterConflicts.java b/src/test/java/org/eclipse/yasson/customization/model/CreatorConstructorSetterConflicts.java
index 9608a66..40a257d 100644
--- a/src/test/java/org/eclipse/yasson/customization/model/CreatorConstructorSetterConflicts.java
+++ b/src/test/java/org/eclipse/yasson/customization/model/CreatorConstructorSetterConflicts.java
@@ -12,6 +12,8 @@
 
 package org.eclipse.yasson.customization.model;
 
+import java.util.Locale;
+
 import jakarta.json.bind.annotation.JsonbCreator;
 import jakarta.json.bind.annotation.JsonbProperty;
 
@@ -36,7 +38,7 @@
 
     @JsonbCreator
     public CreatorConstructorSetterConflicts(@JsonbProperty("value") String value) {
-        this.creatorValue = value.toUpperCase();
+        this.creatorValue = value.toUpperCase(Locale.ROOT);
     }
 
     public String getValue() {
diff --git a/src/test/java/org/eclipse/yasson/customization/model/CreatorFactoryNameConflicts.java b/src/test/java/org/eclipse/yasson/customization/model/CreatorFactoryNameConflicts.java
index d6f53c4..f7dd651 100644
--- a/src/test/java/org/eclipse/yasson/customization/model/CreatorFactoryNameConflicts.java
+++ b/src/test/java/org/eclipse/yasson/customization/model/CreatorFactoryNameConflicts.java
@@ -12,6 +12,8 @@
 
 package org.eclipse.yasson.customization.model;
 
+import java.util.Locale;
+
 import jakarta.json.bind.annotation.JsonbCreator;
 import jakarta.json.bind.annotation.JsonbProperty;
 
@@ -43,7 +45,7 @@
     @JsonbCreator
     public static CreatorFactoryNameConflicts create(@JsonbProperty("value") String value) {
         CreatorFactoryNameConflicts instance = new CreatorFactoryNameConflicts();
-        instance.creatorValue = value.toUpperCase();
+        instance.creatorValue = value.toUpperCase(Locale.ROOT);
         return instance;
     }
 }
diff --git a/src/test/java/org/eclipse/yasson/customization/model/CreatorFactorySetterConflicts.java b/src/test/java/org/eclipse/yasson/customization/model/CreatorFactorySetterConflicts.java
index 8e90262..f13e052 100644
--- a/src/test/java/org/eclipse/yasson/customization/model/CreatorFactorySetterConflicts.java
+++ b/src/test/java/org/eclipse/yasson/customization/model/CreatorFactorySetterConflicts.java
@@ -12,6 +12,8 @@
 
 package org.eclipse.yasson.customization.model;
 
+import java.util.Locale;
+
 import jakarta.json.bind.annotation.JsonbCreator;
 import jakarta.json.bind.annotation.JsonbProperty;
 
@@ -41,7 +43,7 @@
     @JsonbCreator
     public static CreatorFactorySetterConflicts create(@JsonbProperty("value") String value) {
         CreatorFactorySetterConflicts instance = new CreatorFactorySetterConflicts();
-        instance.creatorValue = value.toUpperCase();
+        instance.creatorValue = value.toUpperCase(Locale.ROOT);
         return instance;
     }
 
diff --git a/src/test/java/org/eclipse/yasson/customization/model/CreatorIncompleteParameters.java b/src/test/java/org/eclipse/yasson/customization/model/CreatorIncompleteParameters.java
index d22d8bb..440321d 100644
--- a/src/test/java/org/eclipse/yasson/customization/model/CreatorIncompleteParameters.java
+++ b/src/test/java/org/eclipse/yasson/customization/model/CreatorIncompleteParameters.java
@@ -11,6 +11,8 @@
  */
 package org.eclipse.yasson.customization.model;
 
+import java.util.Locale;
+
 import jakarta.json.bind.annotation.JsonbCreator;
 import jakarta.json.bind.annotation.JsonbProperty;
 
@@ -33,7 +35,7 @@
 
     @JsonbCreator
     public CreatorIncompleteParameters(@JsonbProperty("declaredField") String declaredField) {
-        this.declaredField = declaredField.toUpperCase();
+        this.declaredField = declaredField.toUpperCase(Locale.ROOT);
     }
 
     public void setNotDeclaredSetter(String notDeclaredSetter) {
diff --git a/src/test/java/org/eclipse/yasson/customization/model/CreatorNameConflicts.java b/src/test/java/org/eclipse/yasson/customization/model/CreatorNameConflicts.java
index 896eedf..1d333be 100644
--- a/src/test/java/org/eclipse/yasson/customization/model/CreatorNameConflicts.java
+++ b/src/test/java/org/eclipse/yasson/customization/model/CreatorNameConflicts.java
@@ -12,6 +12,8 @@
 
 package org.eclipse.yasson.customization.model;
 
+import java.util.Locale;
+
 import jakarta.json.bind.annotation.JsonbCreator;
 import jakarta.json.bind.annotation.JsonbProperty;
 
@@ -37,7 +39,7 @@
     public CreatorNameConflicts(
           @JsonbProperty("fromJson") String fromJson,
           @JsonbProperty("notDeclared") int notDeclared) {
-        this.fromCreator = fromJson.toUpperCase();
+        this.fromCreator = fromJson.toUpperCase(Locale.ROOT);
         this.notDeclared = notDeclared;
     }
 }
