Community
Participate
Working Groups
I see frequently UI freezes due to the code cleanup actions. I suggest to cancel the cleanup actions if they run to long. How to reproduce: 1.) Activate cleanup actions 2.) Copy a Java file 3.) In this new file repeat at least 5 times: press Ctrl+A, Ctrl+C, Ctrl+V,Ctrl+V,Ctrl+V Save Stack Trace at org.eclipse.jface.text.TreeLineTracker.getLineNumberOfOffset(TreeLineTracker.java:1122) at org.eclipse.jface.text.AbstractLineTracker.getLineNumberOfOffset(AbstractLineTracker.java:154) at org.eclipse.jface.text.AbstractDocument.getLineOfOffset(AbstractDocument.java:871) at org.eclipse.jdt.internal.ui.text.JavaIndenter.nextToken(JavaIndenter.java:1998) at org.eclipse.jdt.internal.ui.text.JavaIndenter.nextToken(JavaIndenter.java:1983) at org.eclipse.jdt.internal.ui.text.JavaIndenter.skipScope(JavaIndenter.java:2165) at org.eclipse.jdt.internal.ui.text.JavaIndenter.looksLikeArrayInitializerIntro(JavaIndenter.java:1769) at org.eclipse.jdt.internal.ui.text.JavaIndenter.skipToStatementStart(JavaIndenter.java:1360) at org.eclipse.jdt.internal.ui.text.JavaIndenter.handleScopeIntroduction(JavaIndenter.java:1715) at org.eclipse.jdt.internal.ui.text.JavaIndenter.findReferencePosition(JavaIndenter.java:1056) at org.eclipse.jdt.internal.ui.text.JavaIndenter.findReferencePosition(JavaIndenter.java:830) at org.eclipse.jdt.internal.ui.text.JavaIndenter.getReferenceIndentation(JavaIndenter.java:456) at org.eclipse.jdt.internal.ui.text.JavaIndenter.computeIndentation(JavaIndenter.java:489) at org.eclipse.jdt.internal.ui.text.JavaIndenter.computeIndentation(JavaIndenter.java:475) at org.eclipse.jdt.internal.ui.actions.IndentAction.computeReplaceData(IndentAction.java:353) at org.eclipse.jdt.internal.ui.actions.IndentAction.indent(IndentAction.java:271) at org.eclipse.jdt.internal.corext.fix.CodeFormatFix.createCleanUp(CodeFormatFix.java:148) at org.eclipse.jdt.internal.ui.fix.CodeFormatCleanUp.createFix(CodeFormatCleanUp.java:64) at org.eclipse.jdt.internal.corext.fix.CleanUpRefactoring.calculateChange(CleanUpRefactoring.java:792) at org.eclipse.jdt.internal.corext.fix.CleanUpPostSaveListener.saved(CleanUpPostSaveListener.java:390) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$5.run(CompilationUnitDocumentProvider.java:1639) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.notifyPostSaveListeners(CompilationUnitDocumentProvider.java:1633) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.commitWorkingCopy(CompilationUnitDocumentProvider.java:1413) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$4.execute(CompilationUnitDocumentProvider.java:1491) at org.eclipse.ui.editors.text.TextFileDocumentProvider$DocumentProviderOperation.run(TextFileDocumentProvider.java:133) at org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation.execute(WorkspaceModifyDelegatingOperation.java:71) at org.eclipse.ui.actions.WorkspaceModifyOperation.lambda$0(WorkspaceModifyOperation.java:110) at org.eclipse.ui.actions.WorkspaceModifyOperation$$Lambda$1188/0x000000080215e840.run(Unknown Source) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2295) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2322) at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:131) at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:76) at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:66) at org.eclipse.ui.editors.text.TextFileDocumentProvider.executeOperation(TextFileDocumentProvider.java:461) at org.eclipse.ui.editors.text.TextFileDocumentProvider.saveDocument(TextFileDocumentProvider.java:764) at org.eclipse.ui.texteditor.AbstractTextEditor.performSave(AbstractTextEditor.java:5052) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSave(CompilationUnitEditor.java:1275) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave(CompilationUnitEditor.java:1329) at org.eclipse.ui.texteditor.AbstractTextEditor$TextEditorSavable.doSave(AbstractTextEditor.java:7181) at org.eclipse.ui.Saveable.doSave(Saveable.java:213) at org.eclipse.ui.internal.SaveableHelper.doSaveModel(SaveableHelper.java:333) at org.eclipse.ui.internal.SaveableHelper.lambda$1(SaveableHelper.java:196) at org.eclipse.ui.internal.SaveableHelper$$Lambda$1195/0x000000080215d440.run(Unknown Source) at org.eclipse.ui.internal.SaveableHelper.lambda$3(SaveableHelper.java:271) at org.eclipse.ui.internal.SaveableHelper$$Lambda$1196/0x000000080215c840.run(Unknown Source) at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:436) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:352) at org.eclipse.ui.internal.WorkbenchWindow.lambda$5(WorkbenchWindow.java:2364) at org.eclipse.ui.internal.WorkbenchWindow$$Lambda$781/0x0000000801d5cc40.run(Unknown Source) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:72) at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2362) at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:278) at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:260) at org.eclipse.ui.internal.SaveableHelper.saveModels(SaveableHelper.java:207) at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:150) at org.eclipse.ui.internal.WorkbenchPage.saveSaveable(WorkbenchPage.java:3830) at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3843) at org.eclipse.ui.internal.handlers.SaveHandler.execute(SaveHandler.java:57) at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:283) at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:95) at jdk.internal.reflect.GeneratedMethodAccessor180.invoke(Unknown Source) at java.base@12.0.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base@12.0.1/java.lang.reflect.Method.invoke(Method.java:567) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58) at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:318) at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:252) at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:173) at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:156) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:498) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:487) at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:308) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:584) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:653) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:443) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.access$2(KeyBindingDispatcher.java:386) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:96) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1836) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1404) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1431) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1414) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1455) at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:819) at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:4012) at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:857) at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:2243) at org.eclipse.swt.widgets.Control.windowProc(Control.java:6846) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5842) at org.eclipse.swt.internal.gtk.GTK._gtk_main_do_event(Native Method) at org.eclipse.swt.internal.gtk.GTK.gtk_main_do_event(GTK.java:4154) at org.eclipse.swt.widgets.Display.eventProc(Display.java:1474) at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method) at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1603) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4404) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1160) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1049) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:633) at org.eclipse.ui.internal.Workbench$$Lambda$122/0x00000008013bdc40.run(Unknown Source) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:557) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:150) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255) at java.base@12.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@12.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base@12.0.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base@12.0.1/java.lang.reflect.Method.invoke(Method.java:567) at app//org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:660) at app//org.eclipse.equinox.launcher.Main.basicRun(Main.java:597) at app//org.eclipse.equinox.launcher.Main.run(Main.java:1468) at app//org.eclipse.equinox.launcher.Main.main(Main.java:1441)
Roland, can you have a look? AFAIR you were working on code completion performance with a timeout before. Also adding Paul, who improved performance in the text framework in the past.
A possible performance improvement: from your stacktrace it spent its time in TreeLineTracker. This class is already really fast but most requests are still not trivial. JavaIndenter requests the line every time the position is changed which is done (I assume) much more often than the line is actually required to know. Improvement is therefor to remove the line field and calculate it on demand.
New Gerrit change created: https://git.eclipse.org/r/148885
(In reply to Paul Pazderski from comment #2) > A possible performance improvement: from your stacktrace it spent its time > in TreeLineTracker. This class is already really fast but most requests are > still not trivial. > JavaIndenter requests the line every time the position is changed which is > done (I assume) much more often than the line is actually required to know. > Improvement is therefor to remove the line field and calculate it on demand. Awesome Paul, with your patch the freeze is way shorter even for huge files. It is now only a 1.1 second freeze for ~100000 lines. 2.5 freeze for a larger one. Here is the new stack trace: Stack Trace at org.eclipse.jdt.internal.core.JavaModelManager.getInfo(JavaModelManager.java:2179) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:324) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:312) at org.eclipse.jdt.internal.core.Member.getNameRange(Member.java:353) at org.eclipse.jdt.ui.text.folding.DefaultJavaFoldingStructureProvider$JavaElementPosition.computeProjectionRegions(DefaultJavaFoldingStructureProvider.java:594) at org.eclipse.jface.text.source.projection.ProjectionViewer.computeCollapsedRegions(ProjectionViewer.java:1103) at org.eclipse.jface.text.source.projection.ProjectionViewer.widgetSelection2ModelSelection(ProjectionViewer.java:1624) at org.eclipse.jface.text.TextViewer.getSelectedRange(TextViewer.java:2244) at org.eclipse.jface.text.TextViewer.getSelection(TextViewer.java:2447) at org.eclipse.ui.texteditor.AbstractTextEditor.doGetSelection(AbstractTextEditor.java:2904) at org.eclipse.ui.texteditor.AbstractTextEditor$SelectionProvider.getSelection(AbstractTextEditor.java:1423) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$JdtSelectionProvider.getSelection(JavaEditor.java:1394) at org.eclipse.jdt.internal.ui.actions.IndentAction.getSelection(IndentAction.java:774) at org.eclipse.jdt.internal.ui.actions.IndentAction.update(IndentAction.java:691) at org.eclipse.ui.texteditor.AbstractTextEditor.updateAction(AbstractTextEditor.java:5405) at org.eclipse.ui.texteditor.AbstractTextEditor.updateSelectionDependentActions(AbstractTextEditor.java:5478) at org.eclipse.ui.texteditor.AbstractTextEditor$2.lambda$0(AbstractTextEditor.java:3096) at org.eclipse.ui.texteditor.AbstractTextEditor$2$$Lambda$438/0x0000000801998440.run(Unknown Source) at org.eclipse.ui.texteditor.AbstractTextEditor$2.selectionChanged(AbstractTextEditor.java:3107) at org.eclipse.jface.viewers.Viewer$1.run(Viewer.java:151) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:47) at org.eclipse.ui.internal.JFaceUtil$$Lambda$74/0x00000008012aa040.run(Unknown Source) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174) at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:148) at org.eclipse.jface.text.TextViewer.fireSelectionChanged(TextViewer.java:2598) at org.eclipse.jface.text.TextViewer.selectionChanged(TextViewer.java:2577) at org.eclipse.jface.text.TextViewer.setSelectedRange(TextViewer.java:2271) at org.eclipse.jface.text.TextViewer.doOperation(TextViewer.java:3851) at org.eclipse.jface.text.source.SourceViewer.doOperation(SourceViewer.java:1064) at org.eclipse.jface.text.source.projection.ProjectionViewer.doOperation(ProjectionViewer.java:1466) at org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer.doOperation(JavaSourceViewer.java:199) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewer.doOperation(CompilationUnitEditor.java:206) at org.eclipse.ui.texteditor.TextOperationAction.lambda$0(TextOperationAction.java:130) at org.eclipse.ui.texteditor.TextOperationAction$$Lambda$673/0x0000000801c06c40.run(Unknown Source) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:72) at org.eclipse.ui.texteditor.TextOperationAction.run(TextOperationAction.java:130) at org.eclipse.jface.action.Action.runWithEvent(Action.java:474) at org.eclipse.jface.commands.ActionHandler.execute(ActionHandler.java:121) at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:95) at jdk.internal.reflect.GeneratedMethodAccessor42.invoke(Unknown Source) at java.base@12.0.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base@12.0.1/java.lang.reflect.Method.invoke(Method.java:567) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58) at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:318) at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:252) at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:173) at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:156) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:498) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:487) at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:308) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:584) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:653) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:443) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.access$2(KeyBindingDispatcher.java:386) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:96) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1838) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1404) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1431) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1414) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1455) at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:819) at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:4012) at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:857) at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:2243) at org.eclipse.swt.widgets.Control.windowProc(Control.java:6846) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5841) at org.eclipse.swt.internal.gtk.GTK._gtk_main_do_event(Native Method) at org.eclipse.swt.internal.gtk.GTK.gtk_main_do_event(GTK.java:4154) at org.eclipse.swt.widgets.Display.eventProc(Display.java:1476) at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method) at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1603) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4403) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1160) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1049) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:633) at org.eclipse.ui.internal.Workbench$$Lambda$110/0x000000080132a040.run(Unknown Source) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:557) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:150) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255) at java.base@12.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@12.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base@12.0.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base@12.0.1/java.lang.reflect.Method.invoke(Method.java:567) at app//org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:660) at app//org.eclipse.equinox.launcher.Main.basicRun(Main.java:597) at app//org.eclipse.equinox.launcher.Main.run(Main.java:1468) at app//org.eclipse.equinox.launcher.Main.main(Main.java:1441)
Opening the large file also freezes Eclipse, opened Bug 550744 for that.
From my testing, I'm not able to see any noticeable difference between 4.12 (2019-06) and 4.13RC1 (2019-09). Both informed me that the formatting was taking long at around 100k lines, and ran out of heap space at around 300k lines (I used QuickAssistProcessor.java).
(In reply to Roland Grunberg from comment #6) > From my testing, I'm not able to see any noticeable difference between 4.12 > (2019-06) and 4.13RC1 (2019-09). Both informed me that the formatting was > taking long at around 100k lines, and ran out of heap space at around 300k > lines (I used QuickAssistProcessor.java). It is not a regression, just slow.
Gerrit change https://git.eclipse.org/r/148885 was merged to [master]. Commit: http://git.eclipse.org/c/jdt/eclipse.jdt.ui.git/commit/?id=9d84dfa387768e9d3e0526028930c7bbf5f0f6e3
Thanks Paul for the fix and Jeff for the review.