Bug 50000 PostSelectionWithAST causes IllegalArgumentException
I20040113 Opening a class file from a JAR which has no source causes IAE. !ENTRY org.eclipse.core.runtime 4 2 Jan 14, 2004 17:43:55.905 !MESSAGE An internal error occurred during: "Java AST creation". !STACK 0 java.lang.IllegalArgumentException at org.eclipse.jdt.core.dom.AST.parseCompilationUnit(AST.java:528) at org.eclipse.jdt.core.dom.AST.parseCompilationUnit(AST.java:439) at org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$PartListenerGroup.computeAST(SelectionListenerWithASTManager.java:122) at org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$PartListenerGroup.calculateASTandInform(SelectionListenerWithASTManager.java:133) at org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$1.run(SelectionListenerWithASTManager.java:93) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:62)
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/viewsupport/SelectionListenerWithASTManager.java
} else if (element instanceof IClassFile) {
					return AST.parseCompilationUnit((IClassFile) element, true);
				}				
			}
			return null;
		}
		
		protected IStatus calculateASTandInform(ITextSelection selection, IProgressMonitor monitor) {
			if (monitor.isCanceled()) {
				return Status.CANCEL_STATUS;
			}
			
			CompilationUnit astRoot= computeAST(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 implements ISelectionListener {