use Locale.ROOT for case-insensitive keyword normalisation by dxbjavid · Pull Request #2437 · JSQLParser/JSqlParser
several parser helpers fold SQL keywords and identifiers to upper case with the no-argument toUpperCase(), which uses the JVM default locale. under a Turkish or Azeri locale a keyword containing the letter i (union, intersect, minus, time, timestamp, like and friends) folds to a dotted İ instead of ASCII I, so the following Enum.valueOf lookup throws IllegalArgumentException and a valid statement fails to parse, while deparsing emits the wrong casing. switching the conversions to Locale.ROOT keeps case folding of SQL text independent of the runtime locale.