From df475e80d9a37265bdd0df0a75a2cf78bb3bb11a Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 19 Apr 2026 14:35:21 +0000 Subject: [PATCH] Use Locale.ROOT for identifier case conversions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Utils case-conversion helpers used the default locale. Under the Turkish locale, lower-casing 'I' produces a dotless 'ı' and upper-casing 'i' produces 'İ' — either one would emit an identifier that the Java compiler rejects, breaking codegen on Turkish-locale machines. These conversions are for Java source output, so they should always be locale-independent. --- .../main/java/io/github/adamw7/tools/code/gen/Utils.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/code/protogen-maven-plugin/src/main/java/io/github/adamw7/tools/code/gen/Utils.java b/code/protogen-maven-plugin/src/main/java/io/github/adamw7/tools/code/gen/Utils.java index 6849318..f4010c1 100644 --- a/code/protogen-maven-plugin/src/main/java/io/github/adamw7/tools/code/gen/Utils.java +++ b/code/protogen-maven-plugin/src/main/java/io/github/adamw7/tools/code/gen/Utils.java @@ -2,12 +2,13 @@ import java.util.Arrays; import java.util.List; +import java.util.Locale; import java.util.regex.Pattern; import com.google.protobuf.Descriptors.FieldDescriptor; public class Utils { - + private Utils() {} public static String to(FieldDescriptor fieldDescriptor, String suffix) { @@ -15,7 +16,7 @@ public static String to(FieldDescriptor fieldDescriptor, String suffix) { } public static String firstToLower(String string) { - return (String.valueOf(string.charAt(0)).toLowerCase() + string.substring(1)); + return (String.valueOf(string.charAt(0)).toLowerCase(Locale.ROOT) + string.substring(1)); } public static String firstToUpper(String string) { @@ -23,7 +24,7 @@ public static String firstToUpper(String string) { } private static String firstUpper(String string) { - return String.valueOf(string.charAt(0)).toUpperCase(); + return String.valueOf(string.charAt(0)).toUpperCase(Locale.ROOT); } public static String toUpperCamelCase(String s) { @@ -36,7 +37,7 @@ public static String toUpperCamelCase(String s) { } static String toProperCase(String s) { - return s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase(); + return s.substring(0, 1).toUpperCase(Locale.ROOT) + s.substring(1).toLowerCase(Locale.ROOT); } public static String getNextIfc(String className, List fields, FieldDescriptor requiredField) {