DPattern (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; }