uDIG

CatalogTreeViewer.getChildren calls IResolve.members in the UI thread

Details

Description

Members is a blocking method and should not be called in the UI thread.

public Object[] getChildren(Object parent) {

if(parent == null)
return null;
if( parent instanceof List)
return ((List)parent).toArray();
if( parent instanceof String )
return new Object[0];
if( parent instanceof IResolve )
try { return ((IResolve)parent ).members(null).toArray(); } catch (IOException e) { CorePlugin.log(CatalogUIPlugin.getDefault(), e); }

return null;
}

Activity

Hide
David Zwiers added a comment -
Not mine.
Show
David Zwiers added a comment - Not mine.
Hide
Richard Gould added a comment -
Perhaps jody can tackle this?
Show
Richard Gould added a comment - Perhaps jody can tackle this?
Hide
Jody Garnett added a comment -
Call to members now run in a separate thread, note: Search and Wizard make use of ResolveTreeViewerSimple with ResolveTitleDecorator. These both abuse the fact that their results are already resolved.
Show
Jody Garnett added a comment - Call to members now run in a separate thread, note: Search and Wizard make use of ResolveTreeViewerSimple with ResolveTitleDecorator. These both abuse the fact that their results are already resolved.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved: