private static void fillDuplicates(@NotNull Project project,
                                     CommonProblemDescriptor @NotNull [] descriptors,
                                     List<I18nizedPropertyData<HardcodedStringInFormData>> dataList,
                                     HashSet<PsiFile> contextFiles,
                                     Map<VirtualFile, RadRootContainer> containerMap,
                                     Map<String, List<I18nizedPropertyData<HardcodedStringInFormData>>> duplicates) {
    final UniqueNameGenerator uniqueNameGenerator = new UniqueNameGenerator();

    for (CommonProblemDescriptor descriptor : descriptors) {
      FormElementProblemDescriptor formElementProblemDescriptor = (FormElementProblemDescriptor)descriptor;
      PsiFile containingFile = formElementProblemDescriptor.getPsiElement().getContainingFile();
      contextFiles.add(containingFile);
      VirtualFile virtualFile = containingFile.getVirtualFile();

      final RadRootContainer rootContainer = containerMap.computeIfAbsent(virtualFile, f -> {
        try {
          final ClassLoader classLoader = LoaderFactory.getInstance(project).getLoader(virtualFile);
          LwRootContainer lwRootContainer = Utils.getRootContainer(containingFile.getText(), new CompiledClassPropertiesProvider(classLoader));
          Module module = ModuleUtilCore.findModuleForFile(virtualFile, project);

          ModuleProvider moduleProvider = new ModuleProvider() {
            @Override
            public Module getModule() {
              return module;
            }

            @Override
            public Project getProject() {
              return project;
            }
          };

          return XmlReader.createRoot(moduleProvider, lwRootContainer, LoaderFactory.getInstance(project).getLoader(virtualFile), null);
        }
        catch (Exception e) {
          LOG.error(e);
          return null;
        }
      });
      if (rootContainer == null) continue;
      RadComponent component = (RadComponent)FormEditingUtil.findComponent(rootContainer, formElementProblemDescriptor.getComponentId());
      if (component == null) continue;
      String propertyName = formElementProblemDescriptor.getPropertyName();
      String value = getValue(component, propertyName);
      if (value == null) continue;
      String keyPrefix = suggestPropertyKeyPrefix(component, propertyName);
      String defaultKey = keyPrefix != null ? keyPrefix + "." + I18nizeQuickFixDialog.generateDefaultPropertyKey(value) : null;
      String key = uniqueNameGenerator.generateUniqueName(I18nizeQuickFixDialog.suggestUniquePropertyKey(value, defaultKey, null));
      I18nizedPropertyData<HardcodedStringInFormData> data = new I18nizedPropertyData<>(key, value, new HardcodedStringInFormData(component, propertyName, containingFile));
      if (duplicates.containsKey(value)) {
        duplicates.computeIfAbsent(value, k -> new ArrayList<>(1)).add(data);
      }
      else {
        dataList.add(data);
        duplicates.put(value, null);
      }
    }
  }
private static void fillDuplicates(@NotNull Project project,
                                     CommonProblemDescriptor @NotNull [] descriptors,
                                     List<I18nizedPropertyData<HardcodedStringInFormData>> dataList,
                                     HashSet<PsiFile> contextFiles,
                                     Map<VirtualFile, RadRootContainer> containerMap,
                                     Map<String, List<I18nizedPropertyData<HardcodedStringInFormData>>> duplicates)