From ff4997014fe5462dca2b313f3f483400ffee5b62 Mon Sep 17 00:00:00 2001 From: Naoto Sato Date: Fri, 16 Apr 2021 22:23:30 +0000 Subject: [PATCH] 8265375: Bootcycle builds fail with StackOverflowError in cldrconverter Reviewed-by: joehw --- .../classes/build/tools/cldrconverter/CLDRConverter.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java b/make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java index 6dff090f64b..ddd08b38863 100644 --- a/make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java +++ b/make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -1038,6 +1038,10 @@ public class CLDRConverter { Objects.nonNull(p) && !candidates.get(i+1).equals(p)) { List applied = candidates.subList(0, i+1); + if (applied.contains(p)) { + // avoid circular recursion (could happen with nb/no case) + continue; + } applied.addAll(applyParentLocales(baseName, defCon.getCandidateLocales(baseName, p))); return applied; }