commit | d2270fcda762dc262388831eb4810e3e066deed9 | [log] [tgz] |
---|---|---|
author | Jens Johansen <jensj@google.com> | Mon Jan 21 12:18:24 2019 +0000 |
committer | commit-bot@chromium.org <commit-bot@chromium.org> | Mon Jan 21 12:18:24 2019 +0000 |
tree | 7a205c343bad915f24b3c5f3f09a5c3b6d6207ac | |
parent | 865743a273d4162068cabf83f011125bdb7c20ce [diff] |
Avoid ConcurrentModificationException with problemsAsJson and patch files Change-Id: I8663b99376b90c42bfdcad7eff7da47002b98eb0 Reviewed-on: https://dart-review.googlesource.com/c/90386 Reviewed-by: Peter von der Ahé <ahe@google.com> Commit-Queue: Jens Johansen <jensj@google.com>
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart index 5a92412..27ca754 100644 --- a/pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart +++ b/pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart
@@ -1333,7 +1333,9 @@ super.includePart(part, usedParts); nativeMethods.addAll(part.nativeMethods); boundlessTypeVariables.addAll(part.boundlessTypeVariables); - if (part.target.problemsAsJson != null) { + // Check that the targets are different. This is not normally a problem + // but is for patch files. + if (target != part.target && part.target.problemsAsJson != null) { target.problemsAsJson ??= <String>[]; target.problemsAsJson.addAll(part.target.problemsAsJson); }