Menu

#34 Table double-click starts endless table grid refresh

open
nobody
None
5
2005-06-27
2005-06-27
Obert
No

When going into table edit mode, most of the time
dbEdit immediately starts flickering (the table
component seems to refresh itself again and again). The
only way to stop this, is to exit Eclipse completely.

Configuration:
- Eclipse 3.1 RC3
- Java 1.5.0_04
- Database DB2 8.2 (both, JDBC type 2 and 4 drivers)
- dbEdit: dbedit_1.0.3_1.bin.dist_3.X.zip
- WinXP SP1

###########################
Eclipse Error Log:
-----------------------------------------------
Message:
Warning: Detected recursive attempt by part
dbedit.ui.editor.table.TableEditor to create itself
(this is probably, but not necessarily, a bug)

------------------------------
StackTrace:
org.eclipse.ui.PartInitException: Warning: Detected
recursive attempt by part
dbedit.ui.editor.table.TableEditor to create itself
(this is probably, but not necessarily, a bug)
at
org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:543)
at
org.eclipse.ui.internal.PartPane.requestActivation(PartPane.java:239)
at
org.eclipse.ui.internal.EditorPane.requestActivation(EditorPane.java:88)
at
org.eclipse.ui.internal.PartPane.handleEvent(PartPane.java:214)
at
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:844)
at
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:868)
at
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:849)
at
org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:998)
at
org.eclipse.swt.widgets.Control.sendFocusEvent(Control.java:1855)
at
org.eclipse.swt.widgets.Widget.wmSetFocus(Widget.java:1960)
at
org.eclipse.swt.widgets.Control.WM_SETFOCUS(Control.java:3629)
at
org.eclipse.swt.widgets.Canvas.WM_SETFOCUS(Canvas.java:248)
at
org.eclipse.swt.widgets.Control.windowProc(Control.java:3101)
at
org.eclipse.swt.widgets.Display.windowProc(Display.java:3694)
at org.eclipse.swt.internal.win32.OS.SetFocus(Native
Method)
at
org.eclipse.swt.widgets.Control.forceFocus(Control.java:651)
at
org.eclipse.swt.widgets.Control.setFocus(Control.java:2134)
at
org.eclipse.swt.widgets.Composite.setFocus(Composite.java:703)
at
dbedit.ui.editor.table.EditConditionAction.update(EditConditionAction.java:70)
at
dbedit.ui.editor.table.EditConditionAction.setRuler(EditConditionAction.java:35)
at
dbedit.ui.editor.table.TableEditorActionContributor.setActiveEditor(TableEditorActionContributor.java:328)
at
dbedit.ui.editor.table.TableEditor$12.createProgressMonitor(TableEditor.java:995)
at
dbedit.ui.editor.table.GridComposite$TableContentProvider.getRows(GridComposite.java:57)
at
dbedit.ui.editor.table.RowTableViewer.getRawChildren(RowTableViewer.java:287)
at
dbedit.ui.editor.table.RowTableViewer.internalRefresh(RowTableViewer.java:235)
at
org.eclipse.jface.viewers.TableViewer.internalRefresh(TableViewer.java:737)
at
org.eclipse.jface.viewers.StructuredViewer$7.run(StructuredViewer.java:1264)
at
org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1201)
at
org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1262)
at
org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1221)
at
org.eclipse.jface.viewers.TableViewer.inputChanged(TableViewer.java:698)
at
org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:248)
at
org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1417)
at
dbedit.ui.editor.table.GridComposite.createControl(GridComposite.java:497)
at
dbedit.ui.editor.table.GridComposite.setInput(GridComposite.java:457)
at
dbedit.ui.editor.table.TableEditor.createGridPage(TableEditor.java:1020)
at
dbedit.ui.editor.table.TableEditor.doCreatePages(TableEditor.java:839)
at
dbedit.ui.editor.table.TableEditor.createPages(TableEditor.java:830)
at
org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:241)
at
org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:585)
at
org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:365)
at
org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:552)
at
org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:214)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2321)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2254)
at
org.eclipse.ui.internal.WorkbenchPage.access$9(WorkbenchPage.java:2246)
at
org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2232)
at
org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2227)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2208)
at
dbedit.ui.editor.table.OpenEditorAction.openEditor(OpenEditorAction.java:134)
at
dbedit.ui.editor.table.OpenEditorAction.openEditor(OpenEditorAction.java:95)
at
dbedit.ui.editor.table.OpenEditorAction.run(OpenEditorAction.java:35)
at
dbedit.ui.editor.OpenEditorAction.openDefaultEditor(OpenEditorAction.java:62)
at
dbedit.ui.views.TablesViewActionGroup.handleDoubleClick(TablesViewActionGroup.java:337)
at
dbedit.ui.views.TablesView.doubleClick(TablesView.java:666)
at
org.eclipse.jface.viewers.StructuredViewer$1.run(StructuredViewer.java:720)
at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044)
at org.eclipse.core.runtime.Platform.run(Platform.java:783)
at
org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
at
org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:148)
at
org.eclipse.jface.viewers.StructuredViewer.fireDoubleClick(StructuredViewer.java:718)
at
org.eclipse.jface.viewers.StructuredViewer.handleDoubleSelect(StructuredViewer.java:950)
at
org.eclipse.jface.viewers.StructuredViewer$4.widgetDefaultSelected(StructuredViewer.java:1057)
at
org.eclipse.jface.util.OpenStrategy.fireDefaultSelectionEvent(OpenStrategy.java:219)
at
org.eclipse.jface.util.OpenStrategy.access$0(OpenStrategy.java:216)
at
org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:275)
at
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at
org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:844)
at
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3070)
at
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2703)
at
org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699)
at
org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367)
at
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
at
org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103)
at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown
Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.eclipse.core.launcher.Main.invokeFramework(Main.java:334)
at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
at org.eclipse.core.launcher.Main.run(Main.java:973)
at org.eclipse.core.launcher.Main.main(Main.java:948)

-------------------------------------------------
Session Data:
eclipse.buildId=I20050617-1618
java.version=1.5.0_04
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32,
NL=de_DE
Command-line arguments: -os win32 -ws win32 -arch x86

Discussion

  • Uwe Voigt

    Uwe Voigt - 2005-08-11

    Logged In: YES
    user_id=582288

    Is this error still occurring with the Eclipse 3.1 final
    release?
    I cannot reproduce it.

     
  • Obert

    Obert - 2005-08-11

    Logged In: YES
    user_id=196222

    Yes, it does. I experienced the problem with several
    Milestones and with the final version 3.1 also. I am not
    aware of having a special configuration.

    Bug 1238013 seems to be the same. Maybe you can retrace it
    with the information given there.

     
  • Obert

    Obert - 2005-08-11

    Logged In: YES
    user_id=196222

    I just tried other JVMs. Problem also occurs on
    j2sdk1.4.2_08 and on jdk1.5.0_04.

     
  • Uwe Voigt

    Uwe Voigt - 2005-08-11

    Logged In: YES
    user_id=582288

    I would assume that this is not depending on the DB, i
    tested with 8.1 and still cannot reproduce it. Dows it
    occure under special circumstances only or in either case?

     
  • Uwe Voigt

    Uwe Voigt - 2005-08-11

    Logged In: YES
    user_id=582288

    Please check the following:

    if I open Control.class and see the java source, then in
    line 3101 there is the handler for WM_SETCURSOR not
    WM_SETFOCUS, which is in 3102.

    When I installled the 3.1 final release, I completely
    removed the previous binaries and configuration to have a
    clean install.

    Maybe you installed over a previous Milestone or whatever
    and something got wrong.

     
  • Obert

    Obert - 2005-08-11

    Logged In: YES
    user_id=196222

    It happens nearly all of time, when going into edit mode in
    a table grid view or when trying to add a new data row to
    the grid. In the status bar one can see 'Fetching children
    of <table name>' again and again. CPU goes to 100%.
    Just received your update: I check the class and there is
    the WM_SETCURSOR in line 3101 followed by the WM_SETFOCUS.
    When updating Eclipse, I always copy the new version to a
    new directory and re-install the plugins. After that I start
    Eclipse with the -clean option in the old workspace. So the
    installation should be fine.

    I just checked
    dbedit.ui.editor.table.EditConditionAction.update(EditConditionAction.java:70):
    In the update() method the 'text.setFocus()' (line 70) seems
    to cause the recursive calls. I just opened the class from
    CVS and do not know the rest of the code :-). But maybe you
    can tell me what the fRuler member is. The filter line above
    the grid? The error also happens, when the filter line is
    hidden/disabled. I also tried several settings in the DbEdit
    preferences dialog.
    Sorry, still the same error.

     
  • Uwe Voigt

    Uwe Voigt - 2005-08-11

    Logged In: YES
    user_id=582288

    Ok, i could see it.
    To have a workaround: please turn off the "Link with Editor"
    switch.
    The problem is fixed with the next version.

     
  • Obert

    Obert - 2005-08-11

    Logged In: YES
    user_id=196222

    Thank's a lot. With the workaround it seems to work.

     
  • Matt

    Matt - 2005-08-31

    Logged In: YES
    user_id=511925

    Where is the "Link with Editor" switch?

    I've looked everywhere but can't seem to find it....

     
  • Obert

    Obert - 2005-08-31

    Logged In: YES
    user_id=196222

    Switch to dbEdit perspective.
    Have a look to the toolbar in the the 'Tables' view
    (normally at the left side). There is some kind of a
    dropdown symbol. Last menu item.

     

Log in to post a comment.