FileElement () { FileElement fileElement = super.derefTreeElement(); if (fileElement != null) return fileElement; synchronized (myTreeElementLock) { fileElement = super.derefTreeElement(); if (fileElement == null) { fileElement = new FileElement(TokenType.DUMMY_HOLDER, null); fileElement.setPsi(this); if (myTable != null) fileElement.setCharTable(myTable); setTreeElementPointer(fileElement); clearCaches(); } return fileElement; } }