Bug 112167 - [typing] De-indenting large class body makes UI non responsive
Summary: [typing] De-indenting large class body makes UI non responsive
Status: RESOLVED INVALID
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Text (show other bugs)
Version: 3.2   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: JDT-Text-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: needinfo, performance
Depends on:
Blocks:
 
Reported: 2005-10-11 03:31 EDT by Philipe Mulet CLA
Modified: 2007-06-22 10:04 EDT (History)
0 users

See Also:


Attachments
My preferences (15.42 KB, text/plain)
2005-10-11 04:17 EDT, Philipe Mulet CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Philipe Mulet CLA 2005-10-11 03:31:32 EDT
Build id: I20051004-0800

From JDT/Core source project, get CharOperation.java r1.49.
Select entire body of the class as indicated below.

public final class CharOperation {

<--- SELECT FROM HERE
	/**
	 * Constant for an empty char array
	 */
	public static final char[] NO_CHAR = new char[0];
...
<--- SELECT TO HERE
}

Remove leading indentation by pressing shift-TAB.

Observe it takes over 30 seconds on a fast machine, with no progress/busy cursor
indication.
Comment 1 Dani Megert CLA 2005-10-11 03:52:51 EDT
Cannot reproduce using N20051009-0010 on my WinXP machine or another Linux
machine. Did you want to say "slow machine" ;-)? Maybe some other stuff was
hogging your CPU?

Additional info:
- the file has about 3000 lines.
- the described scenario takes about 1s on my machine which is OK for 3000 lines.
Comment 2 Philipe Mulet CLA 2005-10-11 04:13:57 EDT
Still reproduced. Machine is Thinkpad T41p, with 2GB ram. VM has -Xmx512M.

Got the following 2 VM dumps. First after 10s wait, second after further 5s. 
It takes about 30s to complete. If switching window, it gets no longer repainted
(white box). Also, I am using multiple windows setup.

Full thread dump Java HotSpot(TM) Client VM (1.4.2_09-b03 mixed mode):

"Worker-1024" prio=5 tid=0x065104d8 nid=0x72c in Object.wait() [843f000..843fd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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-1019" prio=5 tid=0x045ff108 nid=0x4fc runnable [5daf000..5dafd68]
        at
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.Levenstein$DefaultCellComputer.computeInnerCell(Levenstein.java:74)
        at
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.Levenstein$DefaultCellComputer.computeCell(Levenstein.java:56)
        at
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.Levenstein.internalReverseEditDistance(Levenstein.java:457)
        at
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.Levenstein.hirschberg(Levenstein.java:712)
        at
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.Levenstein.editScriptHirschberg(Levenstein.java:333)
        at
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.Levenstein.findDifferences(Levenstein.java:228)
        at
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.RangeDifferencer.findDifferences(RangeDifferencer.java:81)
        at
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.RangeDifferencer.findRanges(RangeDifferencer.java:221)
        at
org.eclipse.ui.internal.texteditor.quickdiff.DocumentLineDiffer$1.run(DocumentLineDiffer.java:565)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:76)

"Worker-1018" prio=5 tid=0x048dce98 nid=0xf24 in Object.wait() [5caf000..5cafd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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=5 tid=0x048dc488
nid=0xca8 in Object.wait() [5baf000..5bafd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x1a621410> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Worker-1017" prio=5 tid=0x04921700 nid=0x93c in Object.wait() [863f000..863fd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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-1016" prio=5 tid=0x065ad400 nid=0x370 in Object.wait() [853f000..853fd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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-1013" prio=5 tid=0x0664bd60 nid=0xe70 in Object.wait() [7fff000..7fffd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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-1012" prio=5 tid=0x068e5560 nid=0x1b8 in Object.wait() [7cff000..7cffd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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-1010" prio=5 tid=0x0667c008 nid=0xc28 in Object.wait() [7aff000..7affd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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-994" prio=5 tid=0x06648098 nid=0xd24 in Object.wait() [7dff000..7dffd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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-990" prio=5 tid=0x0649c950 nid=0xfac in Object.wait() [60cf000..60cfd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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-987" prio=5 tid=0x06610da8 nid=0x4e4 in Object.wait() [8c3f000..8c3fd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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)

"Thread-839" prio=5 tid=0x0663e580 nid=0xda8 runnable [7eff000..7effd68]
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at com.jcraft.jsch.IO.getByte(Unknown Source)
        at com.jcraft.jsch.Session.read(Unknown Source)
        at com.jcraft.jsch.Session.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:534)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x06606fa8
nid=0xa3c in Object.wait() [b07f000..b07fd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x188267e0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x065b34c0
nid=0x9d0 in Object.wait() [9a3f000..9a3fd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x18650118> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"ServerConnection" prio=7 tid=0x065dd838 nid=0xfb0 runnable [a03f000..a03fd68]
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
        - locked <0x18559110> (a java.net.PlainSocketImpl)
        at java.net.ServerSocket.implAccept(ServerSocket.java:448)
        at java.net.ServerSocket.accept(ServerSocket.java:419)
        at
org.eclipse.jdt.internal.junit.ui.RemoteTestRunnerClient$ServerConnection.run(RemoteTestRunnerClient.java:253)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=5 tid=0x0490dfc0
nid=0xc8c in Object.wait() [75ff000..75ffd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x16437c08> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x04544438
nid=0xffc in Object.wait() [5aaf000..5aafd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x1636bad8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=5 tid=0x046b1c68
nid=0xf58 in Object.wait() [536f000..536fd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x15eb15d0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"YJP Listener Thread" daemon prio=5 tid=0x04410af0 nid=0xf74 runnable
[59af000..59afd68]
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
        - locked <0x1464a578> (a java.net.PlainSocketImpl)
        at java.net.ServerSocket.implAccept(ServerSocket.java:448)
        at java.net.ServerSocket.accept(ServerSocket.java:419)
        at com.yourkit.b.a.a(a:142)
        at com.yourkit.b.a.run(a:133)

"Java indexing" daemon prio=4 tid=0x033a6d08 nid=0x1ec in Object.wait()
[557f000..557fd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x144aaf98> (a
org.eclipse.jdt.internal.core.search.indexing.IndexManager)
        at java.lang.Object.wait(Object.java:429)
        at
org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:349)
        - locked <0x144aaf98> (a
org.eclipse.jdt.internal.core.search.indexing.IndexManager)
        at java.lang.Thread.run(Thread.java:534)

"Start Level Event Dispatcher" daemon prio=5 tid=0x00a48c58 nid=0xfb4 in
Object.wait() [3a9f000..3a9fd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x127b53c0> (a
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at java.lang.Object.wait(Object.java:429)
        at
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:349)
        - locked <0x127b53c0> (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=5 tid=0x00a49008 nid=0xea8 in
Object.wait() [379f000..379fd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x1279feb0> (a
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at java.lang.Object.wait(Object.java:429)
        at
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:349)
        - locked <0x1279feb0> (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=5 tid=0x034be008 nid=0x114 waiting on condition
[369f000..369fd68]
        at java.lang.Thread.sleep(Native Method)
        at
org.eclipse.osgi.framework.adaptor.core.StateManager.run(StateManager.java:310)
        at java.lang.Thread.run(Thread.java:534)

"Signal Dispatcher" daemon prio=10 tid=0x00a16308 nid=0xe04 waiting on condition
[0..0]

"Finalizer" daemon prio=9 tid=0x00a1fb18 nid=0x7f4 in Object.wait()
[2f9f000..2f9fd68]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <0x12777f58> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x00a1f9b0 nid=0xe08 in Object.wait()
[2e9f000..2e9fd68]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:429)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
        - locked <0x12777fc0> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x00035f50 nid=0xbc4 runnable [7e000..7fc3c]
        at org.eclipse.swt.internal.win32.OS.OleInitialize(Native Method)
        at org.eclipse.swt.graphics.TextLayout.<init>(TextLayout.java:160)
        at
org.eclipse.swt.custom.StyledTextRenderer.createTextLayout(StyledTextRenderer.java:437)
        at
org.eclipse.swt.custom.DisplayRenderer.createTextLayout(DisplayRenderer.java:227)
        at
org.eclipse.swt.custom.StyledTextRenderer.getTextLayout(StyledTextRenderer.java:398)
        at
org.eclipse.swt.custom.StyledTextRenderer.drawLine(StyledTextRenderer.java:114)
        at org.eclipse.swt.custom.StyledText.performPaint(StyledText.java:5860)
        at org.eclipse.swt.custom.StyledText.handleTextChanged(StyledText.java:5344)
        at org.eclipse.swt.custom.StyledText$6.textChanged(StyledText.java:4811)
        at
org.eclipse.jface.text.DefaultDocumentAdapter.fireTextChanged(DefaultDocumentAdapter.java:337)
        at
org.eclipse.jface.text.DefaultDocumentAdapter.documentChanged(DefaultDocumentAdapter.java:281)
        at
org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:719)
        at
org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:692)
        at
org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:677)
        at
org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:754)
        at
org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1112)
        at
org.eclipse.jdt.internal.ui.javaeditor.PartiallySynchronizedDocument.replace(PartiallySynchronizedDocument.java:111)
        - locked <0x17c2e978> (a java.lang.Object)
        at
org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1119)
        at
org.eclipse.jdt.internal.ui.javaeditor.PartiallySynchronizedDocument.replace(PartiallySynchronizedDocument.java:102)
        - locked <0x17c2e978> (a java.lang.Object)
        at org.eclipse.jface.text.TextViewer.shiftRight(TextViewer.java:3857)
        at org.eclipse.jface.text.TextViewer.shift(TextViewer.java:3809)
        at org.eclipse.jface.text.TextViewer.doOperation(TextViewer.java:3531)
        at
org.eclipse.jface.text.source.SourceViewer.doOperation(SourceViewer.java:799)
        at
org.eclipse.jface.text.source.projection.ProjectionViewer.doOperation(ProjectionViewer.java:1414)
        at
org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer.doOperation(JavaSourceViewer.java:177)
        at
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewer.doOperation(CompilationUnitEditor.java:213)
        at org.eclipse.ui.texteditor.ShiftAction$1.run(ShiftAction.java:85)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
        at org.eclipse.ui.texteditor.ShiftAction.run(ShiftAction.java:83)
        at
org.eclipse.ui.texteditor.AbstractTextEditor$ActivationCodeTrigger.verifyKey(AbstractTextEditor.java:638)
        at
org.eclipse.jface.text.TextViewer$VerifyKeyListenersManager.verifyKey(TextViewer.java:414)
        at
org.eclipse.swt.custom.StyledTextListener.handleEvent(StyledTextListener.java:51)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:884)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:908)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:893)
        at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:676)
        at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5111)
        at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:4849)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:884)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:908)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:893)
        at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:921)
        at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:917)
        at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1231)
        at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3157)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:3058)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:3854)
        at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
        at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1693)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2839)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1763)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1727)
        at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:371)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
        at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106)
        at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:377)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:164)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
        at org.eclipse.core.launcher.Main.run(Main.java:977)
        at org.eclipse.core.launcher.Main.main(Main.java:952)

"VM Thread" prio=5 tid=0x009cb120 nid=0xf9c runnable

"VM Periodic Task Thread" prio=10 tid=0x00a31058 nid=0xee8 waiting on condition
"Suspend Checker Thread" prio=10 tid=0x00a20b10 nid=0xedc runnable
Tue Oct 11 10:11:06 CEST 2005 - [Worker-1018] Build requested, needsBuild: false
state: 0 delay: 100
Tue Oct 11 10:11:06 CEST 2005 - [Worker-1024] Build requested, needsBuild: false
state: 4 delay: 100
Full thread dump Java HotSpot(TM) Client VM (1.4.2_09-b03 mixed mode):

"Worker-1024" prio=5 tid=0x065104d8 nid=0x72c runnable [843f000..843fd68]
        at
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.Levenstein$DefaultCellComputer.computeInnerCell(Levenstein.java:74)
        at
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.Levenstein$DefaultCellComputer.computeCell(Levenstein.java:56)
        at
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.Levenstein.internalEditDistance(Levenstein.java:421)
        at
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.Levenstein.hirschberg(Levenstein.java:707)
        at
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.Levenstein.hirschberg(Levenstein.java:751)
        at
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.Levenstein.hirschberg(Levenstein.java:751)
        at
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.Levenstein.editScriptHirschberg(Levenstein.java:333)
        at
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.Levenstein.findDifferences(Levenstein.java:228)
        at
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.RangeDifferencer.findDifferences(RangeDifferencer.java:81)
        at
org.eclipse.ui.internal.texteditor.quickdiff.compare.rangedifferencer.RangeDifferencer.findRanges(RangeDifferencer.java:221)
        at
org.eclipse.ui.internal.texteditor.quickdiff.DocumentLineDiffer$1.run(DocumentLineDiffer.java:565)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:76)

"Worker-1019" prio=5 tid=0x045ff108 nid=0x4fc in Object.wait() [5daf000..5dafd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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-1018" prio=5 tid=0x048dce98 nid=0xf24 in Object.wait() [5caf000..5cafd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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=5 tid=0x048dc488
nid=0xca8 in Object.wait() [5baf000..5bafd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x1a621410> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Worker-1017" prio=5 tid=0x04921700 nid=0x93c in Object.wait() [863f000..863fd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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-1016" prio=5 tid=0x065ad400 nid=0x370 in Object.wait() [853f000..853fd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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-1013" prio=5 tid=0x0664bd60 nid=0xe70 in Object.wait() [7fff000..7fffd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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-1012" prio=5 tid=0x068e5560 nid=0x1b8 in Object.wait() [7cff000..7cffd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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-1010" prio=5 tid=0x0667c008 nid=0xc28 in Object.wait() [7aff000..7affd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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-994" prio=5 tid=0x06648098 nid=0xd24 in Object.wait() [7dff000..7dffd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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-990" prio=5 tid=0x0649c950 nid=0xfac in Object.wait() [60cf000..60cfd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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-987" prio=5 tid=0x06610da8 nid=0x4e4 in Object.wait() [8c3f000..8c3fd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3fa0> (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)

"Thread-839" prio=5 tid=0x0663e580 nid=0xda8 runnable [7eff000..7effd68]
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at com.jcraft.jsch.IO.getByte(Unknown Source)
        at com.jcraft.jsch.Session.read(Unknown Source)
        at com.jcraft.jsch.Session.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:534)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x06606fa8
nid=0xa3c in Object.wait() [b07f000..b07fd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x188267e0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x065b34c0
nid=0x9d0 in Object.wait() [9a3f000..9a3fd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x18650118> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"ServerConnection" prio=7 tid=0x065dd838 nid=0xfb0 runnable [a03f000..a03fd68]
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
        - locked <0x18559110> (a java.net.PlainSocketImpl)
        at java.net.ServerSocket.implAccept(ServerSocket.java:448)
        at java.net.ServerSocket.accept(ServerSocket.java:419)
        at
org.eclipse.jdt.internal.junit.ui.RemoteTestRunnerClient$ServerConnection.run(RemoteTestRunnerClient.java:253)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=5 tid=0x0490dfc0
nid=0xc8c in Object.wait() [75ff000..75ffd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x16437c08> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x04544438
nid=0xffc in Object.wait() [5aaf000..5aafd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x1636bad8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=5 tid=0x046b1c68
nid=0xf58 in Object.wait() [536f000..536fd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x15eb15d0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"YJP Listener Thread" daemon prio=5 tid=0x04410af0 nid=0xf74 runnable
[59af000..59afd68]
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
        - locked <0x1464a578> (a java.net.PlainSocketImpl)
        at java.net.ServerSocket.implAccept(ServerSocket.java:448)
        at java.net.ServerSocket.accept(ServerSocket.java:419)
        at com.yourkit.b.a.a(a:142)
        at com.yourkit.b.a.run(a:133)

"Java indexing" daemon prio=4 tid=0x033a6d08 nid=0x1ec in Object.wait()
[557f000..557fd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x144aaf98> (a
org.eclipse.jdt.internal.core.search.indexing.IndexManager)
        at java.lang.Object.wait(Object.java:429)
        at
org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:349)
        - locked <0x144aaf98> (a
org.eclipse.jdt.internal.core.search.indexing.IndexManager)
        at java.lang.Thread.run(Thread.java:534)

"Start Level Event Dispatcher" daemon prio=5 tid=0x00a48c58 nid=0xfb4 in
Object.wait() [3a9f000..3a9fd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x127b53c0> (a
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at java.lang.Object.wait(Object.java:429)
        at
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:349)
        - locked <0x127b53c0> (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=5 tid=0x00a49008 nid=0xea8 in
Object.wait() [379f000..379fd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x1279feb0> (a
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at java.lang.Object.wait(Object.java:429)
        at
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:349)
        - locked <0x1279feb0> (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=5 tid=0x034be008 nid=0x114 waiting on condition
[369f000..369fd68]
        at java.lang.Thread.sleep(Native Method)
        at
org.eclipse.osgi.framework.adaptor.core.StateManager.run(StateManager.java:310)
        at java.lang.Thread.run(Thread.java:534)

"Signal Dispatcher" daemon prio=10 tid=0x00a16308 nid=0xe04 waiting on condition
[0..0]

"Finalizer" daemon prio=9 tid=0x00a1fb18 nid=0x7f4 in Object.wait()
[2f9f000..2f9fd68]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <0x12777f58> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x00a1f9b0 nid=0xe08 in Object.wait()
[2e9f000..2e9fd68]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:429)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
        - locked <0x12777fc0> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x00035f50 nid=0xbc4 runnable [7e000..7fc3c]
        at org.eclipse.swt.internal.win32.OS.OleInitialize(Native Method)
        at org.eclipse.swt.graphics.TextLayout.<init>(TextLayout.java:160)
        at
org.eclipse.swt.custom.StyledTextRenderer.createTextLayout(StyledTextRenderer.java:437)
        at
org.eclipse.swt.custom.DisplayRenderer.createTextLayout(DisplayRenderer.java:227)
        at
org.eclipse.swt.custom.StyledTextRenderer.getTextLayout(StyledTextRenderer.java:398)
        at
org.eclipse.swt.custom.StyledTextRenderer.drawLine(StyledTextRenderer.java:114)
        at org.eclipse.swt.custom.StyledText.performPaint(StyledText.java:5860)
        at org.eclipse.swt.custom.StyledText.handleTextChanged(StyledText.java:5344)
        at org.eclipse.swt.custom.StyledText$6.textChanged(StyledText.java:4811)
        at
org.eclipse.jface.text.DefaultDocumentAdapter.fireTextChanged(DefaultDocumentAdapter.java:337)
        at
org.eclipse.jface.text.DefaultDocumentAdapter.documentChanged(DefaultDocumentAdapter.java:281)
        at
org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:719)
        at
org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:692)
        at
org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:677)
        at
org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:754)
        at
org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1112)
        at
org.eclipse.jdt.internal.ui.javaeditor.PartiallySynchronizedDocument.replace(PartiallySynchronizedDocument.java:111)
        - locked <0x17c2e978> (a java.lang.Object)
        at
org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1119)
        at
org.eclipse.jdt.internal.ui.javaeditor.PartiallySynchronizedDocument.replace(PartiallySynchronizedDocument.java:102)
        - locked <0x17c2e978> (a java.lang.Object)
        at org.eclipse.jface.text.TextViewer.shiftRight(TextViewer.java:3857)
        at org.eclipse.jface.text.TextViewer.shift(TextViewer.java:3809)
        at org.eclipse.jface.text.TextViewer.doOperation(TextViewer.java:3531)
        at
org.eclipse.jface.text.source.SourceViewer.doOperation(SourceViewer.java:799)
        at
org.eclipse.jface.text.source.projection.ProjectionViewer.doOperation(ProjectionViewer.java:1414)
        at
org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer.doOperation(JavaSourceViewer.java:177)
        at
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewer.doOperation(CompilationUnitEditor.java:213)
        at org.eclipse.ui.texteditor.ShiftAction$1.run(ShiftAction.java:85)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
        at org.eclipse.ui.texteditor.ShiftAction.run(ShiftAction.java:83)
        at
org.eclipse.ui.texteditor.AbstractTextEditor$ActivationCodeTrigger.verifyKey(AbstractTextEditor.java:638)
        at
org.eclipse.jface.text.TextViewer$VerifyKeyListenersManager.verifyKey(TextViewer.java:414)
        at
org.eclipse.swt.custom.StyledTextListener.handleEvent(StyledTextListener.java:51)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:884)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:908)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:893)
        at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:676)
        at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5111)
        at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:4849)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:884)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:908)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:893)
        at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:921)
        at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:917)
        at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1231)
        at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3157)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:3058)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:3854)
        at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
        at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1693)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2839)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1763)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1727)
        at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:371)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
        at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106)
        at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:377)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:164)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
        at org.eclipse.core.launcher.Main.run(Main.java:977)
        at org.eclipse.core.launcher.Main.main(Main.java:952)

"VM Thread" prio=5 tid=0x009cb120 nid=0xf9c runnable

"VM Periodic Task Thread" prio=10 tid=0x00a31058 nid=0xee8 waiting on condition
"Suspend Checker Thread" prio=10 tid=0x00a20b10 nid=0xedc runnable
Comment 3 Philipe Mulet CLA 2005-10-11 04:17:12 EDT
Created attachment 28106 [details]
My preferences
Comment 4 Philipe Mulet CLA 2005-10-11 04:17:35 EDT
Note that re-indenting takes as long as de-indenting.
Comment 5 Philipe Mulet CLA 2005-10-11 04:52:17 EDT
Editor quickdiff was enabled, reference was local files.
Turning off editor quickdiff improves perf roughly by a 2x factor, still near
15s to complete.

New VM dump:
Full thread dump Java HotSpot(TM) Client VM (1.4.2_09-b03 mixed mode):

"Worker-1079" prio=5 tid=0x06614f10 nid=0x1ac in Object.wait() [5baf000..5bafd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3eb0> (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=2 tid=0x06642cd8
nid=0xfd4 in Object.wait() [567f000..567fd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x201c1310> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Worker-1074" prio=5 tid=0x066a7bc8 nid=0x8c8 in Object.wait() [62cf000..62cfd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3eb0> (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=2 tid=0x066ebba8
nid=0xb70 in Object.wait() [8f3f000..8f3fd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x19879028> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Worker-1069" prio=5 tid=0x0661e380 nid=0x15c in Object.wait() [843f000..843fd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3eb0> (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-1065" prio=5 tid=0x06380d00 nid=0xfe4 in Object.wait() [823f000..823fd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3eb0> (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-1064" prio=5 tid=0x065aa4f0 nid=0xe5c in Object.wait() [7fff000..7fffd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3eb0> (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-1062" prio=5 tid=0x0657fc48 nid=0xc9c in Object.wait() [7cff000..7cffd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3eb0> (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-1057" prio=5 tid=0x00a49940 nid=0xd0c in Object.wait() [73ff000..73ffd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3eb0> (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-1054" prio=5 tid=0x06610b48 nid=0x160 in Object.wait() [5daf000..5dafd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3eb0> (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-1053" prio=5 tid=0x066eb5b8 nid=0x40c in Object.wait() [5caf000..5cafd68]
        at java.lang.Object.wait(Native Method)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:173)
        - locked <0x128c3eb0> (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=2 tid=0x064334a0
nid=0x144 in Object.wait() [76ff000..76ffd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x188ec0e8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0654f318
nid=0x650 in Object.wait() [587f000..587fd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x18890b08> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x06432d10
nid=0x12c in Object.wait() [77ff000..77ffd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x18709528> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0493aae0
nid=0x8ac in Object.wait() [78ff000..78ffd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x1866f090> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x068e5560
nid=0x598 in Object.wait() [389f000..389fd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x185de950> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Thread-839" prio=5 tid=0x0663e580 nid=0xda8 runnable [7eff000..7effd68]
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at com.jcraft.jsch.IO.getByte(Unknown Source)
        at com.jcraft.jsch.Session.read(Unknown Source)
        at com.jcraft.jsch.Session.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:534)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x06606fa8
nid=0xa3c in Object.wait() [b07f000..b07fd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x17a71320> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x065b34c0
nid=0x9d0 in Object.wait() [9a3f000..9a3fd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x1789fe90> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"ServerConnection" prio=7 tid=0x065dd838 nid=0xfb0 runnable [a03f000..a03fd68]
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
        - locked <0x177a9250> (a java.net.PlainSocketImpl)
        at java.net.ServerSocket.implAccept(ServerSocket.java:448)
        at java.net.ServerSocket.accept(ServerSocket.java:419)
        at
org.eclipse.jdt.internal.junit.ui.RemoteTestRunnerClient$ServerConnection.run(RemoteTestRunnerClient.java:253)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=5 tid=0x0490dfc0
nid=0xc8c in Object.wait() [75ff000..75ffd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x162859d0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x04544438
nid=0xffc in Object.wait() [5aaf000..5aafd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x161bb000> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=5 tid=0x046b1c68
nid=0xf58 in Object.wait() [536f000..536fd68]
        at java.lang.Object.wait(Native Method)
        at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176)
        - locked <0x15d4e620> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"YJP Listener Thread" daemon prio=5 tid=0x04410af0 nid=0xf74 runnable
[59af000..59afd68]
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
        - locked <0x1463bde0> (a java.net.PlainSocketImpl)
        at java.net.ServerSocket.implAccept(ServerSocket.java:448)
        at java.net.ServerSocket.accept(ServerSocket.java:419)
        at com.yourkit.b.a.a(a:142)
        at com.yourkit.b.a.run(a:133)

"Java indexing" daemon prio=4 tid=0x033a6d08 nid=0x1ec in Object.wait()
[557f000..557fd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x1449c888> (a
org.eclipse.jdt.internal.core.search.indexing.IndexManager)
        at java.lang.Object.wait(Object.java:429)
        at
org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:349)
        - locked <0x1449c888> (a
org.eclipse.jdt.internal.core.search.indexing.IndexManager)
        at java.lang.Thread.run(Thread.java:534)

"Start Level Event Dispatcher" daemon prio=5 tid=0x00a48c58 nid=0xfb4 in
Object.wait() [3a9f000..3a9fd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x127b52d0> (a
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at java.lang.Object.wait(Object.java:429)
        at
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:349)
        - locked <0x127b52d0> (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=5 tid=0x00a49008 nid=0xea8 in
Object.wait() [379f000..379fd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x1279feb0> (a
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at java.lang.Object.wait(Object.java:429)
        at
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:349)
        - locked <0x1279feb0> (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=5 tid=0x034be008 nid=0x114 waiting on condition
[369f000..369fd68]
        at java.lang.Thread.sleep(Native Method)
        at
org.eclipse.osgi.framework.adaptor.core.StateManager.run(StateManager.java:310)
        at java.lang.Thread.run(Thread.java:534)

"Signal Dispatcher" daemon prio=10 tid=0x00a16308 nid=0xe04 waiting on condition
[0..0]

"Finalizer" daemon prio=9 tid=0x00a1fb18 nid=0x7f4 in Object.wait()
[2f9f000..2f9fd68]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <0x12777f58> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x00a1f9b0 nid=0xe08 in Object.wait()
[2e9f000..2e9fd68]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:429)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
        - locked <0x12777fc0> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x00035f50 nid=0xbc4 runnable [7e000..7fc3c]
        at org.eclipse.swt.internal.win32.OS.GetMessageTime(Native Method)
        at org.eclipse.swt.widgets.Display.getLastEventTime(Display.java:1599)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:905)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:893)
        at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:676)
        at org.eclipse.swt.custom.StyledText.sendLineEvent(StyledText.java:3791)
        at
org.eclipse.swt.custom.StyledText.getLineBackgroundData(StyledText.java:3685)
        at
org.eclipse.swt.custom.DisplayRenderer.getLineBackgroundData(DisplayRenderer.java:172)
        at
org.eclipse.swt.custom.StyledTextRenderer.drawLine(StyledTextRenderer.java:116)
        at org.eclipse.swt.custom.StyledText.performPaint(StyledText.java:5860)
        at org.eclipse.swt.custom.StyledText.handleTextChanged(StyledText.java:5344)
        at org.eclipse.swt.custom.StyledText$6.textChanged(StyledText.java:4811)
        at
org.eclipse.jface.text.DefaultDocumentAdapter.fireTextChanged(DefaultDocumentAdapter.java:337)
        at
org.eclipse.jface.text.DefaultDocumentAdapter.documentChanged(DefaultDocumentAdapter.java:281)
        at
org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:719)
        at
org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:692)
        at
org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:677)
        at
org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:754)
        at
org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1112)
        at
org.eclipse.jdt.internal.ui.javaeditor.PartiallySynchronizedDocument.replace(PartiallySynchronizedDocument.java:111)
        - locked <0x16f64988> (a java.lang.Object)
        at
org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1119)
        at
org.eclipse.jdt.internal.ui.javaeditor.PartiallySynchronizedDocument.replace(PartiallySynchronizedDocument.java:102)
        - locked <0x16f64988> (a java.lang.Object)
        at org.eclipse.jface.text.TextViewer.shiftRight(TextViewer.java:3857)
        at org.eclipse.jface.text.TextViewer.shift(TextViewer.java:3809)
        at org.eclipse.jface.text.TextViewer.doOperation(TextViewer.java:3531)
        at
org.eclipse.jface.text.source.SourceViewer.doOperation(SourceViewer.java:799)
        at
org.eclipse.jface.text.source.projection.ProjectionViewer.doOperation(ProjectionViewer.java:1414)
        at
org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer.doOperation(JavaSourceViewer.java:177)
        at
org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewer.doOperation(CompilationUnitEditor.java:213)
        at org.eclipse.ui.texteditor.ShiftAction$1.run(ShiftAction.java:85)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
        at org.eclipse.ui.texteditor.ShiftAction.run(ShiftAction.java:83)
        at
org.eclipse.ui.texteditor.AbstractTextEditor$ActivationCodeTrigger.verifyKey(AbstractTextEditor.java:638)
        at
org.eclipse.jface.text.TextViewer$VerifyKeyListenersManager.verifyKey(TextViewer.java:414)
        at
org.eclipse.swt.custom.StyledTextListener.handleEvent(StyledTextListener.java:51)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:884)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:908)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:893)
        at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:676)
        at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5111)
        at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:4849)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:884)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:908)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:893)
        at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:921)
        at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:917)
        at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1231)
        at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3157)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:3058)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:3854)
        at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
        at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1693)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2839)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1763)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1727)
        at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:371)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
        at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106)
        at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:377)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:164)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
        at org.eclipse.core.launcher.Main.run(Main.java:977)
        at org.eclipse.core.launcher.Main.main(Main.java:952)

"VM Thread" prio=5 tid=0x009cb120 nid=0xf9c runnable

"VM Periodic Task Thread" prio=10 tid=0x00a31058 nid=0xee8 waiting on condition
"Suspend Checker Thread" prio=10 tid=0x00a20b10 nid=0xedc runnable
Comment 6 Philipe Mulet CLA 2005-10-11 05:07:32 EDT
Using CVS ref was even slower.
I had 10 editors opened. Closing them all did not change the symptoms.

Exited/restarted Eclipse (suspecting offending JUnit thread in VM dump - though
no JUnit activity was supposed to run). Problem was gone. Indenting action took
less than a second. Reenabling quickdiff made it slightly slower, but still near 1s.
Reopening 10 more editors did make it a bit slower, but still near 1-2s.

Cannot reproduce any longer. 
Dani said: "maybe some bad listener was listening to doc changes."

Closing as REMIND, since there could still be a real problem lying somewhere.
Comment 7 Dani Megert CLA 2007-06-22 09:59:27 EDT
Get rid of deprecated state.
Comment 8 Dani Megert CLA 2007-06-22 10:04:40 EDT
.