Bug 118311 - [javadoc][assist] type \@ in javadoc comment and code assist == hang
Summary: [javadoc][assist] type \@ in javadoc comment and code assist == hang
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.2   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.2 M4   Edit
Assignee: Frederic Fusier CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-11-28 17:07 EST by Darin Wright CLA
Modified: 2005-12-13 10:36 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Darin Wright CLA 2005-11-28 17:07:10 EST
I20051123

I typed "\@" in a javadoc comment (by mistake), and then tried code assist. The IDE hung. Looks like a problem here:

Thread [main] (Suspended)
	org.eclipse.jdt.internal.codeassist.complete.CompletionJavadocParser.readToken() line: 775
	org.eclipse.jdt.internal.codeassist.complete.CompletionJavadocParser(org.eclipse.jdt.internal.compiler.parser.AbstractCommentParser).readTokenSafely() line: 1327
	org.eclipse.jdt.internal.codeassist.complete.CompletionJavadocParser.pushText(int, int) line: 619
	org.eclipse.jdt.internal.codeassist.complete.CompletionJavadocParser(org.eclipse.jdt.internal.compiler.parser.AbstractCommentParser).commentParse() line: 236
	org.eclipse.jdt.internal.codeassist.complete.CompletionJavadocParser.commentParse() line: 89
	org.eclipse.jdt.internal.codeassist.complete.CompletionJavadocParser(org.eclipse.jdt.internal.compiler.parser.JavadocParser).checkDeprecation(int) line: 75
	org.eclipse.jdt.internal.codeassist.complete.CompletionJavadocParser.checkDeprecation(int) line: 77
	org.eclipse.jdt.internal.codeassist.complete.CompletionParser(org.eclipse.jdt.internal.compiler.parser.Parser).checkComment() line: 890
	org.eclipse.jdt.internal.codeassist.complete.CompletionParser(org.eclipse.jdt.internal.compiler.parser.Parser).consumeModifiers() line: 4187
	org.eclipse.jdt.internal.codeassist.complete.CompletionParser.consumeModifiers() line: 2347
	org.eclipse.jdt.internal.codeassist.complete.CompletionParser(org.eclipse.jdt.internal.compiler.parser.Parser).consumeRule(int) line: 5621
	org.eclipse.jdt.internal.codeassist.complete.CompletionParser(org.eclipse.jdt.internal.compiler.parser.Parser).parse() line: 8560
	org.eclipse.jdt.internal.codeassist.complete.CompletionParser(org.eclipse.jdt.internal.compiler.parser.Parser).parse(org.eclipse.jdt.internal.compiler.env.ICompilationUnit, org.eclipse.jdt.internal.compiler.CompilationResult, int, int) line: 8730
	org.eclipse.jdt.internal.codeassist.complete.CompletionParser(org.eclipse.jdt.internal.compiler.parser.Parser).parse(org.eclipse.jdt.internal.compiler.env.ICompilationUnit, org.eclipse.jdt.internal.compiler.CompilationResult) line: 8695
	org.eclipse.jdt.internal.codeassist.complete.CompletionParser(org.eclipse.jdt.internal.compiler.parser.Parser).dietParse(org.eclipse.jdt.internal.compiler.env.ICompilationUnit, org.eclipse.jdt.internal.compiler.CompilationResult) line: 7488
	org.eclipse.jdt.internal.codeassist.complete.CompletionParser.dietParse(org.eclipse.jdt.internal.compiler.env.ICompilationUnit, org.eclipse.jdt.internal.compiler.CompilationResult, int) line: 3283
	org.eclipse.jdt.internal.codeassist.CompletionEngine.complete(org.eclipse.jdt.internal.compiler.env.ICompilationUnit, int, int) line: 1594
	org.eclipse.jdt.internal.core.CompilationUnit(org.eclipse.jdt.internal.core.Openable).codeComplete(org.eclipse.jdt.internal.compiler.env.ICompilationUnit, org.eclipse.jdt.internal.compiler.env.ICompilationUnit, int, org.eclipse.jdt.core.CompletionRequestor, org.eclipse.jdt.core.WorkingCopyOwner) line: 125
	org.eclipse.jdt.internal.core.CompilationUnit.codeComplete(int, org.eclipse.jdt.core.CompletionRequestor, org.eclipse.jdt.core.WorkingCopyOwner) line: 322
	org.eclipse.jdt.internal.core.CompilationUnit.codeComplete(int, org.eclipse.jdt.core.CompletionRequestor) line: 315
	org.eclipse.jdt.internal.ui.text.javadoc.JavadocCompletionProposalComputer(org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposalComputer).internalComputeCompletionProposals(int, org.eclipse.jdt.ui.text.java.JavaContentAssistInvocationContext, org.eclipse.core.runtime.IProgressMonitor) line: 211
	org.eclipse.jdt.internal.ui.text.javadoc.JavadocCompletionProposalComputer(org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposalComputer).computeCompletionProposals(org.eclipse.jface.text.contentassist.TextContentAssistInvocationContext, org.eclipse.core.runtime.IProgressMonitor) line: 191
	org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(org.eclipse.jface.text.contentassist.TextContentAssistInvocationContext, org.eclipse.core.runtime.IProgressMonitor) line: 278
	org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(org.eclipse.jface.text.contentassist.TextContentAssistInvocationContext, java.lang.String, org.eclipse.core.runtime.SubProgressMonitor) line: 248
	org.eclipse.jdt.internal.ui.text.javadoc.JavadocCompletionProcessor(org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor).collectProposals(org.eclipse.jface.text.ITextViewer, int, org.eclipse.core.runtime.IProgressMonitor, org.eclipse.jface.text.contentassist.TextContentAssistInvocationContext) line: 158
	org.eclipse.jdt.internal.ui.text.javadoc.JavadocCompletionProcessor(org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor).computeCompletionProposals(org.eclipse.jface.text.ITextViewer, int) line: 143
	org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(org.eclipse.jface.text.ITextViewer, int) line: 1566
	org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(int) line: 447
	org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$15(org.eclipse.jface.text.contentassist.CompletionProposalPopup, int) line: 444
	org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run() line: 379
	org.eclipse.swt.custom.BusyIndicator.showWhile(org.eclipse.swt.widgets.Display, java.lang.Runnable) line: 69
	org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(boolean) line: 373
	org.eclipse.jface.text.contentassist.ContentAssistant$2.run() line: 335
	org.eclipse.swt.widgets.RunnableLock.run() line: 35
	org.eclipse.ui.internal.UISynchronizer(org.eclipse.swt.widgets.Synchronizer).runAsyncMessages(boolean) line: 123
	org.eclipse.swt.widgets.Display.runAsyncMessages(boolean) line: 3218
	org.eclipse.swt.widgets.Display.readAndDispatch() line: 2864
	org.eclipse.ui.internal.Workbench.runEventLoop(org.eclipse.jface.window.Window$IExceptionHandler, org.eclipse.swt.widgets.Display) line: 1794
	org.eclipse.ui.internal.Workbench.runUI() line: 1758
	org.eclipse.ui.internal.Workbench.createAndRunWorkbench(org.eclipse.swt.widgets.Display, org.eclipse.ui.application.WorkbenchAdvisor) line: 381
	org.eclipse.ui.PlatformUI.createAndRunWorkbench(org.eclipse.swt.widgets.Display, org.eclipse.ui.application.WorkbenchAdvisor) line: 143
	org.eclipse.ui.internal.ide.IDEApplication.run(java.lang.Object) line: 106
	org.eclipse.core.internal.runtime.PlatformActivator$1.run(java.lang.Object) line: 109
	org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(java.lang.Object) line: 92
	org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(java.lang.Object) line: 68
	org.eclipse.core.runtime.adaptor.EclipseStarter.run(java.lang.Object) line: 369
	org.eclipse.core.runtime.adaptor.EclipseStarter.run(java.lang.String[], java.lang.Runnable) line: 167
	sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]
	sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 39
	sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 25
	java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) line: 324
	org.eclipse.core.launcher.Main.invokeFramework(java.lang.String[], java.net.URL[]) line: 338
	org.eclipse.core.launcher.Main.basicRun(java.lang.String[]) line: 282
	org.eclipse.core.launcher.Main.run(java.lang.String[]) line: 977
	org.eclipse.core.launcher.Main.main(java.lang.String[]) line: 952
Comment 1 Frederic Fusier CLA 2005-11-29 03:30:26 EST
CompletionJavadocParser read but didn't consume invalid token '\' and looped infinitely on it... :-(

Fixed and released in HEAD.

Test case added in JavadocBugsCompletionModelTest.
Comment 2 Jerome Lanneluc CLA 2005-12-13 10:36:12 EST
Verified for 3.2 M4 using build I20051213-0010