Community
Participate
Working Groups
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.
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.
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
Created attachment 28106 [details] My preferences
Note that re-indenting takes as long as de-indenting.
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
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.
Get rid of deprecated state.
.