Bug 115386 - [javadoc][assist] Hang in javadoc completion
Summary: [javadoc][assist] Hang in javadoc completion
Status: RESOLVED WORKSFORME
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.1   Edit
Hardware: PC Linux-GTK
: P3 critical (vote)
Target Milestone: 3.2 M4   Edit
Assignee: Frederic Fusier CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-11-07 15:57 EST by Douglas Pollock CLA
Modified: 2005-11-08 10:17 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 Douglas Pollock CLA 2005-11-07 15:57:51 EST
I was typing in a Java editor, and attempting to do javadoc completion.  
Eclipse hung, and needed to be killed. 
 
The text of the javadoc comment was very rough (i.e., unformatted), as it had 
been cut and paste from a ".options" file.  I was adding @see tags to it.  I 
believe I had a line that looked like this: 
 
    @see AbstractSourceProvider.DEBUG 
 
I positioned the cursor before the '.', and pressed "Ctrl+Space" to trigger 
completion.  At this point, Eclipse hung. 
 
 
 
/opt/eclipse-I200511021600-gtk/eclipse  
-data /home/dpollock/Source/Eclipse/Workspaces/HEAD  
-vm /opt/sun-jdk-1.5.0.04/bin/java -vmargs -Xverify:none -Xms40m -Xmx96m  
-XX:PermSize=20m -XX:+UseParallelGC -XX:CompileThreshold=100  
Full thread dump Java HotSpot(TM) Client VM (1.5.0_04-b05 mixed mode):  
  
"Worker-162" prio=1 tid=0x093abab0 nid=0x55f4 in Object.wait()  
[0xa24f6000..0xa24f70e0]  
	at java.lang.Object.wait(Native Method)  
	at  
org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)  
	- locked <0xace0cc38> (a org.eclipse.core.internal.jobs.WorkerPool)  
	at  
org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)  
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69)  
  
"Worker-161" prio=1 tid=0x092c1a10 nid=0x55f3 in Object.wait()  
[0xa32ca000..0xa32caf60]  
	at java.lang.Object.wait(Native Method)  
	at  
org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)  
	- locked <0xace0cc38> (a org.eclipse.core.internal.jobs.WorkerPool)  
	at  
org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)  
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69)  
  
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x9df1a5c0  
nid=0x55cf in Object.wait() [0xa2577000..0xa2578060]  
	at java.lang.Object.wait(Native Method)  
	at  
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)  
	- locked <0xae977dc0> (a  
org.eclipse.jface.text.reconciler.DirtyRegionQueue)  
  
"Worker-160" prio=1 tid=0x08b7f490 nid=0x55cc in Object.wait()  
[0x9da7d000..0x9da7e0e0]  
	at java.lang.Object.wait(Native Method)  
	at  
org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)  
	- locked <0xace0cc38> (a org.eclipse.core.internal.jobs.WorkerPool)  
	at  
org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)  
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69)  
  
"Worker-159" prio=1 tid=0x09238e98 nid=0x55cb in Object.wait()  
[0xa2679000..0xa2679f60]  
	at java.lang.Object.wait(Native Method)  
	at  
org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)  
	- locked <0xace0cc38> (a org.eclipse.core.internal.jobs.WorkerPool)  
	at  
org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)  
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69)  
  
"Worker-158" prio=1 tid=0x091f9cf0 nid=0x55ca in Object.wait()  
[0x9dcfe000..0x9dcfefe0]  
	at java.lang.Object.wait(Native Method)  
	at  
org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)  
	- locked <0xace0cc38> (a org.eclipse.core.internal.jobs.WorkerPool)  
	at  
org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)  
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69)  
  
"Worker-157" prio=1 tid=0x9de9a878 nid=0x55c9 in Object.wait()  
[0xa30fe000..0xa30fee60]  
	at java.lang.Object.wait(Native Method)  
	at  
org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)  
	- locked <0xace0cc38> (a org.eclipse.core.internal.jobs.WorkerPool)  
	at  
org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)  
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69)  
  
"Worker-156" prio=1 tid=0x9dd19c98 nid=0x55c8 in Object.wait()  
[0xa2ca8000..0xa2ca8ee0]  
	at java.lang.Object.wait(Native Method)  
	at  
org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)  
	- locked <0xace0cc38> (a org.eclipse.core.internal.jobs.WorkerPool)  
	at  
org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)  
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69)  
  
"Worker-153" prio=1 tid=0x0948f058 nid=0x53f6 in Object.wait()  
[0xa27fc000..0xa27fd0e0]  
	at java.lang.Object.wait(Native Method)  
	at  
org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)  
	- locked <0xace0cc38> (a org.eclipse.core.internal.jobs.WorkerPool)  
	at  
org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)  
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69)  
  
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x9ddd8be0  
nid=0x53c5 in Object.wait() [0xa2475000..0xa2475f60]  
	at java.lang.Object.wait(Native Method)  
	at  
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)  
	- locked <0xae764420> (a  
org.eclipse.jface.text.reconciler.DirtyRegionQueue)  
  
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x9dee3210  
nid=0x53bf in Object.wait() [0xa26fa000..0xa26fb060]  
	at java.lang.Object.wait(Native Method)  
	at  
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)  
	- locked <0xae73bf88> (a  
org.eclipse.jface.text.reconciler.DirtyRegionQueue)  
  
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x9db609e8  
nid=0x53b6 in Object.wait() [0x9d9fd000..0x9d9fd1e0]  
	at java.lang.Object.wait(Native Method)  
	at  
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)  
	- locked <0xae6df480> (a  
org.eclipse.jface.text.reconciler.DirtyRegionQueue)  
  
"Worker-147" prio=1 tid=0x9dd1e5f0 nid=0x539f in Object.wait()  
[0x9dafe000..0x9daff0e0]  
	at java.lang.Object.wait(Native Method)  
	at  
org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)  
	- locked <0xace0cc38> (a org.eclipse.core.internal.jobs.WorkerPool)  
	at  
org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:205)  
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:69)  
  
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x9db1dd88  
nid=0x527a in Object.wait() [0xa28fe000..0xa28ff060]  
	at java.lang.Object.wait(Native Method)  
	at  
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)  
	- locked <0xae672558> (a  
org.eclipse.jface.text.reconciler.DirtyRegionQueue)  
  
"Java indexing" daemon prio=1 tid=0xa2d36f00 nid=0x37af in Object.wait()  
[0xa2e9b000..0xa2e9b160]  
	at java.lang.Object.wait(Native Method)  
	at java.lang.Object.wait(Object.java:474)  
	at  
org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:349)  
	- locked <0xad256230> (a  
org.eclipse.jdt.internal.core.search.indexing.IndexManager)  
	at java.lang.Thread.run(Thread.java:595)  
  
"Start Level Event Dispatcher" daemon prio=1 tid=0x08429450 nid=0x37ac in  
Object.wait() [0xa7fe1000..0xa7fe20e0]  
	at java.lang.Object.wait(Native Method)  
	- waiting on <0xaca86880> (a  
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)  
	at java.lang.Object.wait(Object.java:474)  
	at  
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:349)  
	- locked <0xaca86880> (a  
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)  
	at  
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:287)  
  
"Framework Event Dispatcher" daemon prio=1 tid=0x08427d40 nid=0x37ab in  
Object.wait() [0xa8062000..0xa8062f60]  
	at java.lang.Object.wait(Native Method)  
	at java.lang.Object.wait(Object.java:474)  
	at  
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:349)  
	- locked <0xaca877a0> (a  
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)  
	at  
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:287)  
  
"State Data Manager" daemon prio=1 tid=0x0841e6e8 nid=0x37aa waiting on  
condition [0xa80e3000..0xa80e3fe0]  
	at java.lang.Thread.sleep(Native Method)  
	at  
org.eclipse.osgi.framework.adaptor.core.StateManager.run(StateManager.java:328)  
	at java.lang.Thread.run(Thread.java:595)  
  
"Low Memory Detector" daemon prio=1 tid=0x080dfcc0 nid=0x37a6 runnable  
[0x00000000..0x00000000]  
  
"CompilerThread0" daemon prio=1 tid=0x080de810 nid=0x37a5 waiting on condition  
[0x00000000..0xa84cabc8]  
  
"Signal Dispatcher" daemon prio=1 tid=0x080dd900 nid=0x37a4 waiting on  
condition [0x00000000..0x00000000]  
  
"Finalizer" daemon prio=1 tid=0x080d3290 nid=0x37a3 in Object.wait()  
[0xa85cc000..0xa85cd0e0]  
	at java.lang.Object.wait(Native Method)  
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)  
	- locked <0xac8b8408> (a java.lang.ref.ReferenceQueue$Lock)  
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)  
	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)  
  
"Reference Handler" daemon prio=1 tid=0x080d25c8 nid=0x37a2 in Object.wait()  
[0xa864d000..0xa864df60]  
	at java.lang.Object.wait(Native Method)  
	at java.lang.Object.wait(Object.java:474)  
	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)  
	- locked <0xac97b2c0> (a java.lang.ref.Reference$Lock)  
  
"main" prio=1 tid=0x0805bd30 nid=0x379e runnable [0xbfbdb000..0xbfbddb48]  
	at  
org.eclipse.jdt.internal.compiler.parser.JavadocParser.pushSeeRef(JavadocParser.java:668)  
	at  
org.eclipse.jdt.internal.compiler.parser.AbstractCommentParser.parseReference(AbstractCommentParser.java:1100)  
	at  
org.eclipse.jdt.internal.codeassist.complete.CompletionJavadocParser.parseReference(CompletionJavadocParser.java:529)  
	at  
org.eclipse.jdt.internal.compiler.parser.JavadocParser.parseTag(JavadocParser.java:542)  
	at  
org.eclipse.jdt.internal.codeassist.complete.CompletionJavadocParser.parseTag(CompletionJavadocParser.java:542)  
	at  
org.eclipse.jdt.internal.compiler.parser.AbstractCommentParser.commentParse(AbstractCommentParser.java:207)  
	at  
org.eclipse.jdt.internal.codeassist.complete.CompletionJavadocParser.commentParse(CompletionJavadocParser.java:89)  
	at  
org.eclipse.jdt.internal.compiler.parser.JavadocParser.checkDeprecation(JavadocParser.java:75)  
	at  
org.eclipse.jdt.internal.codeassist.complete.CompletionJavadocParser.checkDeprecation(CompletionJavadocParser.java:77)  
	at  
org.eclipse.jdt.internal.compiler.parser.Parser.checkComment(Parser.java:890)  
	at  
org.eclipse.jdt.internal.compiler.parser.Parser.consumeModifiers(Parser.java:4147)  
	at  
org.eclipse.jdt.internal.codeassist.complete.CompletionParser.consumeModifiers(CompletionParser.java:2302)  
	at  
org.eclipse.jdt.internal.compiler.parser.Parser.consumeRule(Parser.java:5577)  
	at  
org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:8513)  
	at  
org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:8683)  
	at  
org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:8648)  
	at  
org.eclipse.jdt.internal.compiler.parser.Parser.dietParse(Parser.java:7441)  
	at  
org.eclipse.jdt.internal.codeassist.complete.CompletionParser.dietParse(CompletionParser.java:3146)  
	at  
org.eclipse.jdt.internal.codeassist.CompletionEngine.complete(CompletionEngine.java:1543)  
	at  
org.eclipse.jdt.internal.core.Openable.codeComplete(Openable.java:127)  
	at  
org.eclipse.jdt.internal.core.CompilationUnit.codeComplete(CompilationUnit.java:290)  
	at  
org.eclipse.jdt.internal.core.CompilationUnit.codeComplete(CompilationUnit.java:283)  
	at  
org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposalComputer.internalComputeCompletionProposals(JavaCompletionProposalComputer.java:211)  
	at  
org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposalComputer.computeCompletionProposals(JavaCompletionProposalComputer.java:191)  
	at  
org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:278)  
	at  
org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:248)  
	at  
org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:158)  
	at  
org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:143)  
	at  
org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1566)  
	at  
org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:447)  
	at  
org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$15 
(CompletionProposalPopup.java:444)  
	at  
org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:379)  
	at  
org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)  
	at  
org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:373)  
	at  
org.eclipse.jface.text.contentassist.ContentAssistant.showPossibleCompletions(ContentAssistant.java:1414)  
	at  
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewer.doOperation(CompilationUnitEditor.java:204)  
	at  
org.eclipse.ui.texteditor.ContentAssistAction$1.run(ContentAssistAction.java:82)  
	at  
org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)  
	at  
org.eclipse.ui.texteditor.ContentAssistAction.run(ContentAssistAction.java:80)  
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:996)  
	at  
org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:182)  
	at  
org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:108)  
	at org.eclipse.core.commands.Command.execute(Command.java:287)  
	at  
org.eclipse.core.commands.ParameterizedCommand.execute(ParameterizedCommand.java:401)
Comment 1 Frederic Fusier CLA 2005-11-07 16:24:46 EST
Another symptom of bug 114115
Comment 2 Frederic Fusier CLA 2005-11-08 05:21:17 EST
In fact I cannot reproduce using simple following test case:

Test.java:
  package b115386;
  /**
   * @see AbstractSourceProvider.DEBUG
   */
  public class Test {}

AbstractSourceProvider.java:
  package b115386;
  public class AbstractSourceProvider {
	public static boolean DEBUG;
  }

Can you be more precise on your test case?
Comment 3 Douglas Pollock CLA 2005-11-08 09:56:09 EST
It's not reproducible.  It could have something to do with other threads 
running in the background, system load, and the fact that my machine is 
hyper-threading. 
 
Comment 4 Frederic Fusier CLA 2005-11-08 10:17:24 EST
OK, so close as WORKSFORME.
Please reopen if you get it again.