EG (8/24/00 3:41:25 PM)
+ TableTree doesn't support showing an icon in the first column. The icon is eaten up
+ by the +/- icon.
+ Not being able to have an icon in the first column reduces the applicability
+ of TableTree (we would like to use it in the Java plugin, but we can't).
+
+NOTES:
+
+VI (8/24/00 10:54:39 AM)
+ TableTree is implemented using the Windows table widget and this only allows
+ one image per column. Sorry, there's nothing we can do.
+
+AW (24.08.00 17:31:06)
+ Why not combining the +/- icon with the client's icon into a single icon?
+
+EG (8/29/00 3:35:01 PM)
+ JFace has support for compositing icons see:
+ com.ibm.jface.examples.compositeimage.CompositeImageExample
+
+CM (3/17/01 5:29:49 PM)
+ P1/M1 (April 1st, 2001)
+ Need to know the priority of 1GAJ9KP: SWT:ALL - TableTree class has no selection support for the SWT.CHECK style
+ because these two PRs may conflict.
+
+CM (3/28/01 5:09:33 PM)
+ We investigated using the Windows "state image" feature in Table, but this is already being used by
+ checkboxes if the Table is created with check style. It would also mean that we would have to provide
+ platform-specific public API on Table to allow TableTree class to set/get state images. So we decided
+ against this.
+
+ VI is going to investigate merging the [+]/[-] images with the user's image. We would try to write it
+ in such a way that only those who actually put an image in the first column would have to pay for
+ the added slowness. We suspect there may be issues such as background color/transparency
+ problems, hit test problems, selection highlight problems, and cheese problems, but we will have
+ to try it first before we know for sure.
+
+VI (4/4/2001 10:41:59 AM)
+ Two major issues which prevent us from merging the [+]/[-] with the user's image and using the normal first column image:
+ 1) Images of different sizes can be added to the control, however the size of the image displayed in the associated
+ Windows Common Control will be constrained to the size of the first image added to the ImageList.
+ Images for all columns are added to the same ImageList and therefore must have the exact same height and WIDTH.
+ This makes merging the +/- and the first column image have impact on every image in the TableTree
+ 2) There is a limit to how may images I can cram in the ImageList. Having potentially 3 per row I think will quickly exceed the limit.
+
+VI (4/4/2001 05:20 PM)
+
+ We have a PR that requests support for an image in the first column of a TableTree and I believe that you
+ are the prime requestor.
+
+ I have tried to make this work and below is the best I can do. As you can see, there is a limitation on the
+ underlying native widget which is that all images in the TableTree must have the exact same height and width.
+ Consequently, when I leave enough room to merge the +/- image with the image you wish to show in the first column,
+ this causes all the other images in the TableTree to be stretched width wise.
+
+ <picture>
+
+ It is my opinion that the current TableTree can not be made to work any better than this. If this is not
+ adequate for your use, the only alternative is to write a custom widget that does this and does not
+ use the native widget. Writing a full custom widget is not trivial. It will probably require a month or
+ two and will probably not give all the capability that is present in native List or Tree widgets (just
+ because there are a lot of subtle things going on there and I won't have time to get them all). I need
+ to know if I should commence with a custom widget. Also, as I have other responsibilities, Mike and I will
+ have to discuss which of them will be set aside before I can do this work.
+
+VI (4/27/2001 8:42:19 AM)
+ Have received no feedback requesting a custom Tree or implementation of the solution presented above.
+ Moving to Inactive.
------- Additional Comment #1 From
+Veronika Irvine 2002-05-27 16:17
+-------
java.lang.NullPointerException Closing this bug report. A new DCR should be raised from a better custom table
+tree.
To recreate:
+
+- Check out the QuickFix project from ajdt.test project
+java.lang.NullPointerException- Open TestAspect.java in the Java Editor (right click > open with > Java
+Editor)
+- Click on the lightbulb with the error marker (the same line as File f = new
+File("tmp");
+java.lang.NullPointerException- An Internal Error appear in the Error log with the following stack trace:
+
+
+
+java.lang.NullPointerException
+at
+org.eclipse.jdt.internal.ui.text.correction.UnresolvedElementsSubProcessor.getT
+ypeProposals(UnresolvedElementsSubProcessor.java:395)
+at org.eclipse.jdt.internal.ui.text.correction.QuickFixProcessor.process
+(QuickFixProcessor.java:270)
+at org.eclipse.jdt.internal.ui.text.correction.QuickFixProcessor.getCorrections
+(QuickFixProcessor.java:202)
+at
+org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.collectCorr
+ections(JavaCorrectionProcessor.java:240)
+at
+org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.processAnno
+tations(JavaCorrectionProcessor.java:208)
+at
+org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.computeComp
+letionProposals(JavaCorrectionProcessor.java:177)
+at
+org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposal
+s(ContentAssistant.java:1472)
+at
+org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals
+(CompletionProposalPopup.java:242)
+at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$7
+(CompletionProposalPopup.java:238)
+at org.eclipse.jface.text.contentassist.CompletionProposalPopup$1.run
+(CompletionProposalPopup.java:197)
+at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
+at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals
+(CompletionProposalPopup.java:192)
+at
+org.eclipse.jface.text.contentassist.ContentAssistant.showPossibleCompletions
+(ContentAssistant.java:1320)
+at
+org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionAssistant.showPossibl
+eCompletions(JavaCorrectionAssistant.java:159)
+at
+org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewe
+r.doOperation(CompilationUnitEditor.java:184)
+at org.eclipse.jdt.internal.ui.javaeditor.JavaSelectAnnotationRulerAction.run
+(JavaSelectAnnotationRulerAction.java:78)
+at org.eclipse.ui.texteditor.AbstractRulerActionDelegate.run
+(AbstractRulerActionDelegate.java:99)
+at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:276)
+at org.eclipse.ui.internal.PluginAction.run(PluginAction.java:238)
+at org.eclipse.ui.texteditor.AbstractTextEditor$11.triggerAction
+(AbstractTextEditor.java:2110)
+at org.eclipse.ui.texteditor.AbstractTextEditor$11.mouseUp
+(AbstractTextEditor.java:2117)
+at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:136)
+at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
+at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
+at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2772)
+at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2431)
+at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377)
+at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
+at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254)
+at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
+at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96)
+at org.eclipse.core.internal.runtime.PlatformActivator$1.run
+(PlatformActivator.java:335)
+at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
+at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
+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.basicRun(Main.java:183)
+at org.eclipse.core.launcher.Main.run(Main.java:644)
+at org.eclipse.core.launcher.Main.main(Main.java:628)
+
+
+Looking at the jdt code in UnresolvedElementsSubProcessor.java, at line 395,
+the parent field is null:
+
+ ASTNode parent= selectedNode.getParent();
+ while (parent.getLength() == selectedNode.getLength()) { // line 395
+ parent= parent.getParent();
+ }
+
+java.lang.NullPointerException There just needs to be a null check as there is above:
+
+
+ ASTNode selectedNode= problem.getCoveringNode(context.getASTRoot());
+ if (selectedNode == null) {
+ return;
+ }
+ int kind= SimilarElementsRequestor.ALL_TYPES;
+
+ ASTNode parent= selectedNode.getParent();
+ while (parent.getLength() == selectedNode.getLength()) {
+ parent= parent.getParent();
+ }
+
+should become:
+
+
+ ASTNode selectedNode= problem.getCoveringNode(context.getASTRoot());
+ if (selectedNode == null) {
+ return;
+ }
+ int kind= SimilarElementsRequestor.ALL_TYPES;
+
+ ASTNode parent= selectedNode.getParent();
+ if (parent == null) {
+ return;
+ }
+ while (parent.getLength() == selectedNode.getLength()) {
+ parent= parent.getParent();
+ }
+
+
+This needs to be raised as a jdt bug, since we don't pass through any ajdt
+code in order to get here.
+
+Raising this bug against ajdt is just for tracking.
+
+(note this happens on 1.1.12, but also on the latest AJDT dev build).
EG (8/24/00 3:41:25 PM)
+ TableTree doesn't support showing an icon in the first column. The icon is eaten up
+ by the +/- icon.
+ Not being able to have an icon in the first column reduces the applicability
+ of TableTree (we would like to use it in the Java plugin, but we can't).
+
+NOTES:
+
+VI (8/24/00 10:54:39 AM)
+ TableTree is implemented using the Windows table widget and this only allows
+ one image per column. Sorry, there's nothing we can do.
+
+AW (24.08.00 17:31:06)
+ Why not combining the +/- icon with the client's icon into a single icon?
+
+EG (8/29/00 3:35:01 PM)
+ JFace has support for compositing icons see:
+ com.ibm.jface.examples.compositeimage.CompositeImageExample
+
+CM (3/17/01 5:29:49 PM)
+ P1/M1 (April 1st, 2001)
+ Need to know the priority of 1GAJ9KP: SWT:ALL - TableTree class has no selection support for the SWT.CHECK style
+ because these two PRs may conflict.
+
+CM (3/28/01 5:09:33 PM)
+ We investigated using the Windows "state image" feature in Table, but this is already being used by
+ checkboxes if the Table is created with check style. It would also mean that we would have to provide
+ platform-specific public API on Table to allow TableTree class to set/get state images. So we decided
+ against this.
+
+ VI is going to investigate merging the [+]/[-] images with the user's image. We would try to write it
+ in such a way that only those who actually put an image in the first column would have to pay for
+ the added slowness. We suspect there may be issues such as background color/transparency
+ problems, hit test problems, selection highlight problems, and cheese problems, but we will have
+ to try it first before we know for sure.
+
+VI (4/4/2001 10:41:59 AM)
+ Two major issues which prevent us from merging the [+]/[-] with the user's image and using the normal first column image:
+ 1) Images of different sizes can be added to the control, however the size of the image displayed in the associated
+ Windows Common Control will be constrained to the size of the first image added to the ImageList.
+ Images for all columns are added to the same ImageList and therefore must have the exact same height and WIDTH.
+ This makes merging the +/- and the first column image have impact on every image in the TableTree
+ 2) There is a limit to how may images I can cram in the ImageList. Having potentially 3 per row I think will quickly exceed the limit.
+
+VI (4/4/2001 05:20 PM)
+
+ We have a PR that requests support for an image in the first column of a TableTree and I believe that you
+ are the prime requestor.
+
+ I have tried to make this work and below is the best I can do. As you can see, there is a limitation on the
+ underlying native widget which is that all images in the TableTree must have the exact same height and width.
+ Consequently, when I leave enough room to merge the +/- image with the image you wish to show in the first column,
+ this causes all the other images in the TableTree to be stretched width wise.
+
+ <picture>
+
+ It is my opinion that the current TableTree can not be made to work any better than this. If this is not
+ adequate for your use, the only alternative is to write a custom widget that does this and does not
+ use the native widget. Writing a full custom widget is not trivial. It will probably require a month or
+ two and will probably not give all the capability that is present in native List or Tree widgets (just
+ because there are a lot of subtle things going on there and I won't have time to get them all). I need
+ to know if I should commence with a custom widget. Also, as I have other responsibilities, Mike and I will
+ have to discuss which of them will be set aside before I can do this work.
+
+VI (4/27/2001 8:42:19 AM)
+ Have received no feedback requesting a custom Tree or implementation of the solution presented above.
+ Moving to Inactive.
------- Additional Comment #1 From
+Veronika Irvine 2002-05-27 16:17
+-------
Closing this bug report. A new DCR should be raised from a better custom table
+tree.
Run the following example, click on the button and you get the SWT Exception wdiget is disposed.
+See Stack trace below.
+In the dispose method of a widget, we need to check that the widget has not been disposed in the Dispose callback.
+
+public static void main(String args[]){
+ Display display = new Display ();
+ Shell shell = new Shell();
+ shell.setLayout(new org.eclipse.swt.layout.GridLayout());
+ shell.setBounds(100,30, 800,600);
+ shell.open();
+
+ final Composite panel = new Composite(shell, SWT.BORDER);
+ panel.setBounds(20,430,100,100);
+
+ final Button button = new Button(panel, 0);
+ button.setText("dispose button");
+ button.setBounds(7,7,80,70);
+ final SelectionAdapter[] selectionListener = new SelectionAdapter[1];
+ selectionListener[0] = new SelectionAdapter(){
+ public void widgetSelected (org.eclipse.swt.events.SelectionEvent e){
+ button.dispose();
+ }
+ };
+ button.addSelectionListener(selectionListener[0]);
+
+ final DisposeListener[] disposeListener = new DisposeListener[1];
+ disposeListener[0] = new DisposeListener(){
+ public void widgetDisposed(org.eclipse.swt.events.DisposeEvent e){
+ button.removeDisposeListener(disposeListener[0]);
+ panel.dispose();
+ }
+ };
+ button.addDisposeListener(disposeListener[0]);
+
+ while (!shell.isDisposed ()) {
+ if (!display.readAndDispatch ()) display.sleep ();
+ }
+}
+
+
+org.eclipse.swt.SWTException: Widget is disposed
+ at org.eclipse.swt.SWT.error(SWT.java:1818)
+ at org.eclipse.swt.SWT.error(SWT.java:1750)
+ at org.eclipse.swt.widgets.Widget.error(Widget.java:379)
+ at org.eclipse.swt.widgets.Control.getDisplay(Control.java:597)
+ at org.eclipse.swt.widgets.Control.unsubclass(Control.java:2365)
+ at org.eclipse.swt.widgets.Control.releaseWidget(Control.java:1247)
+ at org.eclipse.swt.widgets.Button.releaseWidget(Button.java:344)
+ at org.eclipse.swt.widgets.Widget.dispose(Widget.java:366)
+ at veronika._Scrapbook$1.widgetSelected(_Scrapbook.java:43)
+ at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:85)
+ at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:54)
+ at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:645)
+ at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1359)
+ at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1160)
+ at veronika._Scrapbook.main(_Scrapbook.java:58)
+Exception in thread "main"
+
+NOTES:
------- Additional Comment #2 From
+Veronika Irvine 2004-09-24 10:09
+-------
In 3.1, I get a different error now on Windows:
+
+java.lang.NullPointerException
+ at org.eclipse.swt.widgets.Control.deregister(Control.java:498)
+ at org.eclipse.swt.widgets.Control.releaseWidget(Control.java:1496)
+ at org.eclipse.swt.widgets.Button.releaseWidget(Button.java:364)
+ at org.eclipse.swt.widgets.Widget.dispose(Widget.java:368)
+ at veronika.Newsgroup$1.widgetSelected(Newsgroup.java:25)
+ at org.eclipse.swt.widgets.TypedListener.handleEvent
+(TypedListener.java:89)
+ at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
+ at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
+ at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2783)
+ at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2442)
+ at veronika.Newsgroup.main(Newsgroup.java:40)
+
-------
+Additional Comment #1
+From John Arthorne 2004-06-15
+18:17 -------
Please include the Eclipse build number in the bug report. Also, it looks like
+you are evaluating a watch expression. Please include/describe the expression,
+and say if it is reproducible.
To recreate:
+
+- Check out the QuickFix project from ajdt.test project
+- Open TestAspect.java in the Java Editor (right click > open with > Java
+Editor)
+- Click on the lightbulb with the error marker (the same line as File f = new
+File("tmp");
+- An Internal Error appear in the Error log with the following stack trace:
+
+
+
+java.lang.NullPointerException
+at
+org.eclipse.jdt.internal.ui.text.correction.UnresolvedElementsSubProcessor.getT
+ypeProposals(UnresolvedElementsSubProcessor.java:395)
+at org.eclipse.jdt.internal.ui.text.correction.QuickFixProcessor.process
+(QuickFixProcessor.java:270)
+at org.eclipse.jdt.internal.ui.text.correction.QuickFixProcessor.getCorrections
+(QuickFixProcessor.java:202)
+at
+org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.collectCorr
+ections(JavaCorrectionProcessor.java:240)
+at
+org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.processAnno
+tations(JavaCorrectionProcessor.java:208)
+at
+org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionProcessor.computeComp
+letionProposals(JavaCorrectionProcessor.java:177)
+at
+org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposal
+s(ContentAssistant.java:1472)
+at
+org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals
+(CompletionProposalPopup.java:242)
+at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$7
+(CompletionProposalPopup.java:238)
+at org.eclipse.jface.text.contentassist.CompletionProposalPopup$1.run
+(CompletionProposalPopup.java:197)
+at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
+at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals
+(CompletionProposalPopup.java:192)
+at
+org.eclipse.jface.text.contentassist.ContentAssistant.showPossibleCompletions
+(ContentAssistant.java:1320)
+at
+org.eclipse.jdt.internal.ui.text.correction.JavaCorrectionAssistant.showPossibl
+eCompletions(JavaCorrectionAssistant.java:159)
+at
+org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewe
+r.doOperation(CompilationUnitEditor.java:184)
+at org.eclipse.jdt.internal.ui.javaeditor.JavaSelectAnnotationRulerAction.run
+(JavaSelectAnnotationRulerAction.java:78)
+at org.eclipse.ui.texteditor.AbstractRulerActionDelegate.run
+(AbstractRulerActionDelegate.java:99)
+at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:276)
+at org.eclipse.ui.internal.PluginAction.run(PluginAction.java:238)
+at org.eclipse.ui.texteditor.AbstractTextEditor$11.triggerAction
+(AbstractTextEditor.java:2110)
+at org.eclipse.ui.texteditor.AbstractTextEditor$11.mouseUp
+(AbstractTextEditor.java:2117)
+at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:136)
+at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
+at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
+at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2772)
+at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2431)
+at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377)
+at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
+at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254)
+at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
+at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96)
+at org.eclipse.core.internal.runtime.PlatformActivator$1.run
+(PlatformActivator.java:335)
+at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
+at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
+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.basicRun(Main.java:183)
+at org.eclipse.core.launcher.Main.run(Main.java:644)
+at org.eclipse.core.launcher.Main.main(Main.java:628)
+
+
+Looking at the jdt code in UnresolvedElementsSubProcessor.java, at line 395,
+the parent field is null:
+
+ ASTNode parent= selectedNode.getParent();
+ while (parent.getLength() == selectedNode.getLength()) { // line 395
+ parent= parent.getParent();
+ }
+
+There just needs to be a null check as there is above:
+
+
+ ASTNode selectedNode= problem.getCoveringNode(context.getASTRoot());
+ if (selectedNode == null) {
+ return;
+ }
+ int kind= SimilarElementsRequestor.ALL_TYPES;
+
+ ASTNode parent= selectedNode.getParent();
+ while (parent.getLength() == selectedNode.getLength()) {
+ parent= parent.getParent();
+ }
+
+should become:
+
+
+ ASTNode selectedNode= problem.getCoveringNode(context.getASTRoot());
+ if (selectedNode == null) {
+ return;
+ }
+ int kind= SimilarElementsRequestor.ALL_TYPES;
+
+ ASTNode parent= selectedNode.getParent();
+ if (parent == null) {
+ return;
+ }
+ while (parent.getLength() == selectedNode.getLength()) {
+ parent= parent.getParent();
+ }
+
+
+This needs to be raised as a jdt bug, since we don't pass through any ajdt
+code in order to get here.
+
+Raising this bug against ajdt is just for tracking.
+
+(note this happens on 1.1.12, but also on the latest AJDT dev build).
I was doing some pull up refactorings.
+
+!SESSION Oct 15, 2004 15:08:42.572 ---------------------------------------------
+eclipse.buildId=I200410130800
+java.fullversion=J2RE 1.4.2 IBM J9 2.2 Windows XP x86-32 j9n142-20040831 (JIT
+enabled)
+J9VM - 20040827_2136_lHdSMR
+JIT - r7_level20040827_1801
+BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
+
+!ENTRY org.eclipse.core.runtime 4 2 Oct 15, 2004 15:08:42.572
+!MESSAGE Problems occurred when invoking code from plug-in:
+"org.eclipse.core.runtime".
+!STACK 0
+org.eclipse.jface.text.Assert$AssertionFailedException: Assertion failed:
+ at org.eclipse.jface.text.Assert.isTrue(Assert.java:177)
+ at org.eclipse.jface.text.Assert.isTrue(Assert.java:162)
+ at org.eclipse.text.edits.TextEdit.internalSetLength(TextEdit.java:712)
+ at org.eclipse.text.edits.MultiTextEdit.defineRegion(MultiTextEdit.java:194)
+ at org.eclipse.text.edits.TextEditProcessor.<init>(TextEditProcessor.java:65)
+ at org.eclipse.text.edits.TextEditProcessor.<init>(TextEditProcessor.java:56)
+ at
+org.eclipse.ltk.core.refactoring.TextChange.createTextEditProcessor(TextChange.java:638)
+ at
+org.eclipse.ltk.core.refactoring.TextChange.getPreviewDocument(TextChange.java:611)
+ at
+org.eclipse.ltk.core.refactoring.TextChange.getPreviewDocument(TextChange.java:538)
+ at
+org.eclipse.ltk.core.refactoring.TextChange.getPreviewContent(TextChange.java:553)
+ at
+org.eclipse.ltk.internal.ui.refactoring.TextChangePreviewViewer.setInput(TextChangePreviewViewer.java:190)
+ at
+org.eclipse.ltk.internal.ui.refactoring.DefaultChangeElement.feedInput(DefaultChangeElement.java:57)
+ at
+org.eclipse.ltk.internal.ui.refactoring.PreviewWizardPage.showPreview(PreviewWizardPage.java:370)
+ at
+org.eclipse.ltk.internal.ui.refactoring.PreviewWizardPage.access$2(PreviewWizardPage.java:355)
+ at
+org.eclipse.ltk.internal.ui.refactoring.PreviewWizardPage$2.selectionChanged(PreviewWizardPage.java:346)
+ at org.eclipse.jface.viewers.Viewer$2.run(Viewer.java:163)
+ at
+org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:616)
+ at org.eclipse.core.runtime.Platform.run(Platform.java:747)
+ at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:161)
+ at
+org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:1613)
+ at
+org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1304)
+ at org.eclipse.jface.viewers.Viewer.setSelection(Viewer.java:380)
+ at
+org.eclipse.ltk.internal.ui.refactoring.PreviewWizardPage.setVisible(PreviewWizardPage.java:283)
+ at org.eclipse.jface.wizard.WizardDialog.updateForPage(WizardDialog.java:1024)
+ at org.eclipse.jface.wizard.WizardDialog.access$2(WizardDialog.java:1007)
+ at org.eclipse.jface.wizard.WizardDialog$4.run(WizardDialog.java:997)
+ at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
+ at org.eclipse.jface.wizard.WizardDialog.showPage(WizardDialog.java:995)
+ at org.eclipse.jface.wizard.WizardDialog.nextPressed(WizardDialog.java:747)
+ at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:338)
+ at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:543)
+ at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:89)
+ at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
+ at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:800)
+ at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2784)
+ at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2443)
+ at org.eclipse.jface.window.Window.runEventLoop(Window.java:706)
+ at org.eclipse.jface.window.Window.open(Window.java:684)
+ at
+org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run(RefactoringWizardOpenOperation.java:125)
+ at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
+ at
+org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:138)
+ at
+org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringStarter.activate(RefactoringStarter.java:40)
+ at org.eclipse.jdt.ui.actions.PullUpAction.startRefactoring(PullUpAction.java:209)
+ at org.eclipse.jdt.ui.actions.PullUpAction.run(PullUpAction.java:151)
+ at
+org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:216)
+ at
+org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:188)
+ at org.eclipse.jface.action.Action.runWithEvent(Action.java:988)
+ at
+org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:946)
+ at
+org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:896)
+ at
+org.eclipse.jface.action.ActionContributionItem$7.handleEvent(ActionContributionItem.java:810)
+ at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
+ at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:800)
+ at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2784)
+ at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2443)
+ at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1443)
+ at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1414)
+ at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:271)
+ at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144)
+ at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:102)
+ at
+org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:335)
+ at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
+ at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
+ at
+sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
+ at java.lang.reflect.Method.invoke(Method.java:391)
+ at org.eclipse.core.launcher.Main.basicRun(Main.java:185)
+ at org.eclipse.core.launcher.Main.run(Main.java:704)
+ at org.eclipse.core.launcher.Main.main(Main.java:688)