protected void storeProblemsFor(SourceFile sourceFile, CategorizedProblem[] problems)
      throws CoreException {
    if (sourceFile == null || problems == null || problems.length == 0) return;

    for (int i = problems.length; --i >= 0; ) {
      CategorizedProblem problem = problems[i];
      if (problem != null && problem.getID() == IProblem.UndefinedType) {
        if (this.typeLocatorsWithUndefinedTypes == null)
          this.typeLocatorsWithUndefinedTypes = new StringSet(3);
        this.typeLocatorsWithUndefinedTypes.add(sourceFile.typeLocator());
        break;
      }
    }

    super.storeProblemsFor(sourceFile, problems);
  }