Bug 63898 [reconciling] Multiple threads calling IJavaReconcilingListener#reconciled() at the same time
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/CompilationUnitEditor.java
if (offset != -1 && !containsOffset(newElement, offset) && (offset == 0 || !containsOffset(newElement, offset - 1)))
				return -1;
			
			return offset;
		}
		
		/**
		 * Return offset recomputed from stored visual properties.  
		 * 
		 * @param newElement Enclosing element
		 * @return Offset in the document
		 */
		public int getRememberedOffset(IJavaElement newElement) {
			try {
				if (newElement == null)
					return -1;
				
				IDocument document= getSourceViewer().getDocument();
				int newElementLine= -1;
				if (newElement instanceof IMember) {
					ISourceRange range= ((IMember) newElement).getNameRange();
					if (range != null)
						newElementLine= document.getLineOfOffset(range.getOffset());
				}
				if (newElementLine == -1)
					newElementLine= document.getLineOfOffset(getOffset(newElement));
				if (newElementLine == -1)
					return -1;
				int newLine= fLine + newElementLine - fElementLine;