public static DPattern getCachedPattern(final PsiFile descriptorFile, final ErrorHandler eh) {
    final VirtualFile file = descriptorFile.getVirtualFile();

    if (file == null) {
      return parsePattern(descriptorFile, eh, false);
    }
    String url = file.getUrl();
    DPattern pattern = ourCache.get(url);
    if (pattern == null) {
      pattern = parsePattern(descriptorFile, eh, false);
    }
    if (pattern != null) {
      ourCache.put(url, pattern);
    }
    return pattern;
  }
public static DPattern getCachedPattern(final PsiFile descriptorFile, final ErrorHandler eh)