Bug 55451 Assertion Failed in ASTProvider
plugin export 20040319 1. Browse into CVS of org.eclipse.swt (win32), and open TableItem.java 2. Endless repretitions of error dialogs org.eclipse.jface.text.Assert$AssertionFailedException: Assertion failed: at java.lang.Throwable.<init>(Throwable.java) at java.lang.Throwable.<init>(Throwable.java) at org.eclipse.jface.text.Assert$AssertionFailedException.<init>(Assert.java:54) at org.eclipse.jface.text.Assert.isTrue(Assert.java:175) at org.eclipse.jface.text.Assert.isTrue(Assert.java) at org.eclipse.jdt.internal.ui.javaeditor.ASTProvider.getAST(ASTProvider.java:140) at org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$PartListenerGroup.calculateASTandInform(SelectionListenerWithASTManager.java) at org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$1.run(SelectionListenerWithASTManager.java:97) at org.eclipse.core.internal.jobs.Worker.run(Worker.java)
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/viewsupport/SelectionListenerWithASTManager.java
else
				return null;
		}
		
		protected IStatus calculateASTandInform(ITextSelection selection, IProgressMonitor monitor) {
			if (monitor.isCanceled()) {
				return Status.CANCEL_STATUS;
			}
			
			CompilationUnit astRoot= JavaPlugin.getDefault().getASTProvider().getAST(getJavaElement(), true, 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);
					if (monitor.isCanceled()) {
						return Status.CANCEL_STATUS;
					}
				}
				return Status.OK_STATUS;			
			}
			return Status.CANCEL_STATUS;
		}
	}
	
	
	private static class WorkbenchWindowListener {
		private ISelectionService fSelectionService;
		private ISelectionListener fSelectionListener, fPostSelectionListener;
		private Map fPartListeners;