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 (element == null || offset == -1)
				return -1;
			if (containsOffset(element, offset)) {
				if (offset > 0) {
					IJavaElement alternateElement= getElementAt(offset, false);
					if (element.getHandleIdentifier().equals(alternateElement.getParent().getHandleIdentifier()))
						return offset - 1; 
				}
				return offset;
			} else if (offset > 0 && containsOffset(element, offset - 1))
				return offset - 1; 
			
			return -1;
		}
		/**
		 * Return Java element recomputed from stored visual properties.  
		 * 
		 * @return Java element
		 */
		public IJavaElement getElement() {
			if (fElement == null)
				return null;
			
			return findElement(fElement);
		}
		/**
		 * Clears the stored position 
		 */
		public void clear() {
			fLine= -1;