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
}
					synchronized (PartListenerGroup.this) {
						return calculateASTandInform(selection, monitor);
					}
				}
			};
			fCurrentJob.setPriority(Job.DECORATE);
			fCurrentJob.setSystem(true);
			fCurrentJob.schedule();
		}
		
		private CompilationUnit computeAST(IProgressMonitor monitor) {
			IEditorInput editorInput= fPart.getEditorInput();
			if (editorInput != null) {
				IJavaElement element= (IJavaElement) editorInput.getAdapter(IJavaElement.class);
				if (element instanceof ICompilationUnit) {
					ICompilationUnit cu= (ICompilationUnit) element;
					char[] buffer= null;
					synchronized (element) {  
						if (!monitor.isCanceled()) {
							try {
								buffer= cu.getBuffer().getCharacters();
							} catch (JavaModelException e) {
								
							}
						}
					}
					if (buffer != null) {
						return AST.parseCompilationUnit(buffer, cu.getElementName(), cu.getJavaProject());
					}