@Override
  public void loadState(@NotNull Element state) {
    try {
      List<Pair<Element, String>> files = new ArrayList<>();
      for (Iterator<Element> iterator = state.getChildren(BUILD_FILE).iterator(); iterator.hasNext(); ) {
        Element element = iterator.next();
        iterator.remove();
        String url = element.getAttributeValue(URL);
        if (url != null) {
          files.add(Pair.create(element, url));
        }
      }
      myBuildFilesConfiguration.set(files);

      final VirtualFileManager vfManager = VirtualFileManager.getInstance();
      // contexts
      myAntFileToContextFileMap.clear();
      for (Element element : state.getChildren(CONTEXT_MAPPING)) {
        String url = element.getAttributeValue(URL);
        String contextUrl = element.getAttributeValue(CONTEXT);
        assert url != null;
        VirtualFile file = vfManager.findFileByUrl(url);
        assert contextUrl != null;
        VirtualFile contextFile = vfManager.findFileByUrl(contextUrl);
        if (file != null && contextFile != null) {
          myAntFileToContextFileMap.put(file, contextFile);
        }
      }

      getProperties().readExternal(state);
    }
    finally {
      queueInitialization();
    }
  }
@Override
  public void loadState(@NotNull Element state)