public static ProjectLintConfiguration get(
      LintClient client, IProject project, boolean fatalOnly) {
    // Don't cache fatal-only configurations: they're only used occasionally and typically
    // not repeatedly
    if (fatalOnly) {
      return create(client, project, GlobalLintConfiguration.get(), true);
    }

    ProjectLintConfiguration configuration = null;
    try {
      Object value = project.getSessionProperty(CONFIGURATION_NAME);
      configuration = (ProjectLintConfiguration) value;
    } catch (CoreException e) {
      // Not a problem; we will just create a new one
    }
    if (configuration == null) {
      configuration = create(client, project, GlobalLintConfiguration.get(), false);
      try {
        project.setSessionProperty(CONFIGURATION_NAME, configuration);
      } catch (CoreException e) {
        AdtPlugin.log(e, "Can't store lint configuration");
      }
    }
    return configuration;
  }