diff --git a/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/ConvertIcuDataTask.java b/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/ConvertIcuDataTask.java index d3e9f74db92..046b188fa7c 100644 --- a/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/ConvertIcuDataTask.java +++ b/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/ConvertIcuDataTask.java @@ -30,6 +30,7 @@ import org.apache.tools.ant.Task; import org.unicode.cldr.api.CldrDataSupplier; import org.unicode.cldr.api.CldrDraftStatus; import org.unicode.cldr.api.CldrPath; +import org.unicode.cldr.util.CLDRConfig; import org.unicode.icu.tool.cldrtoicu.AlternateLocaleData; import org.unicode.icu.tool.cldrtoicu.IcuConverterConfig; import org.unicode.icu.tool.cldrtoicu.LdmlConverter; @@ -305,6 +306,10 @@ public final class ConvertIcuDataTask extends Task { @SuppressWarnings("unused") public void execute() throws BuildException { + // Spin up CLDRConfig outside of other inner loops, to + // avoid static init problems seen in CLDR-14636 + CLDRConfig.getInstance().getSupplementalDataInfo(); + checkBuild(localeIds != null, " must be specified"); CldrDataSupplier src = CldrDataSupplier