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
int endOffset= startOffset + selection.getLength();
				
				fStartOffset.setOffset(startOffset);
				fEndOffset.setOffset(endOffset);
			}
		}
		/**
		 * Restore remembered selection.
		 */
		public void restore() {
			/* https://bugs.eclipse.org/bugs/show_bug.cgi?id=52257
			 * This method may be called inside an async call posted
			 * to the UI thread, so protect against intermediate disposal
			 * of the editor.
			 */
			if (getSourceViewer() == null)
				return;
			
			try {
				
				int startOffset, endOffset;
				int revealStartOffset, revealEndOffset; 
				if (showsHighlightRangeOnly()) {
					IJavaElement newStartElement= fStartOffset.getElement();
					startOffset= fStartOffset.getRememberedOffset(newStartElement);
					revealStartOffset= fStartOffset.getRevealOffset(newStartElement, startOffset);
					if (revealStartOffset == -1)
						startOffset= -1;
					
					IJavaElement newEndElement= fEndOffset.getElement();