Bug 67851 SelectionListenerWithASTManager should synchronized access to listener list
RC2, for post 3.0: SelectionListenerWithASTManager.PartListenerGroup should protect the access to the ListenerList from the job.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/viewsupport/SelectionListenerWithASTManager.java
synchronized (PartListenerGroup.this) {
						return calculateASTandInform(input, selection, monitor);
					}
				}
			};
			fCurrentJob.setPriority(Job.DECORATE);
			fCurrentJob.setSystem(true);
			fCurrentJob.schedule();
		}
		
		private IJavaElement getJavaElement() {
			IEditorInput editorInput= fPart.getEditorInput();
			if (editorInput != null)
				return (IJavaElement)editorInput.getAdapter(IJavaElement.class);
			else
				return null;
		}
		
		protected IStatus calculateASTandInform(IJavaElement input, ITextSelection selection, IProgressMonitor monitor) {
			if (monitor.isCanceled()) {
				return Status.CANCEL_STATUS;
			}
			
			try {
				CompilationUnit astRoot= JavaPlugin.getDefault().getASTProvider().getAST(input, true, monitor);
			
				if (astRoot != null && !monitor.isCanceled()) {
					Object[] listeners= fAstListeners.getListeners();
					for (int i= 0; i < listeners.length; i++) {
						((ISelectionListenerWithAST) listeners[i]).selectionChanged(fPart, selection, astRoot);