PsiDocComment (PsiJavaDocumentedElement docOwner) { PsiElement navElement = docOwner.getNavigationElement(); if (!(navElement instanceof PsiJavaDocumentedElement)) { LOG.info("Wrong navElement: " + navElement + "; original = " + docOwner + " of class " + docOwner.getClass()); return null; } PsiDocComment comment = ((PsiJavaDocumentedElement)navElement).getDocComment(); if (comment == null) { //check for non-normalized fields PsiModifierList modifierList = docOwner instanceof PsiDocCommentOwner ? ((PsiDocCommentOwner)docOwner).getModifierList() : null; if (modifierList != null) { PsiElement parent = modifierList.getParent(); if (parent instanceof PsiDocCommentOwner && parent.getNavigationElement() instanceof PsiDocCommentOwner) { return ((PsiDocCommentOwner)parent.getNavigationElement()).getDocComment(); } } } return comment; }