### Eclipse Workspace Patch 1.0 #P org.eclipse.rse.ui Index: UI/org/eclipse/rse/internal/ui/view/SystemViewLabelAndContentProvider.java =================================================================== RCS file: /cvsroot/dsdp/org.eclipse.tm.rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/view/SystemViewLabelAndContentProvider.java,v retrieving revision 1.11 diff -u -r1.11 SystemViewLabelAndContentProvider.java --- UI/org/eclipse/rse/internal/ui/view/SystemViewLabelAndContentProvider.java 5 Jun 2007 20:59:59 -0000 1.11 +++ UI/org/eclipse/rse/internal/ui/view/SystemViewLabelAndContentProvider.java 23 Jul 2007 22:54:32 -0000 @@ -14,6 +14,7 @@ * Martin Oberhuber (Wind River) - [168975] Move RSE Events API to Core * Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API * Martin Oberhuber (Wind River) - [190271] Move ISystemViewInputProvider to Core + * Martin Oberhuber (Wind River) - [197550] Fix NPE when refreshing Pending items ********************************************************************************/ package org.eclipse.rse.internal.ui.view; @@ -56,10 +57,10 @@ * adapter registered. Also provides label contents, so can be used for * both a content and label provider for TreeViewers. *

- * This has a general flavour, which is used in most cases, and also has - * a specialized flavour for universal file systems, which allows restricting + * This has a general flavor, which is used in most cases, and also has + * a specialized flavor for universal file systems, which allows restricting * the list to files only or folders only. It also allows further subsetting by - * setting an input filter or filterstring. + * setting an input filter or filter string. */ public class SystemViewLabelAndContentProvider extends LabelProvider implements ITreeContentProvider, ILabelProvider, ITableLabelProvider @@ -262,12 +263,12 @@ */ public Object[] getChildren(Object object) { - ISystemViewElementAdapter adapter = getViewAdapter(object); Object element = object; if (object instanceof IContextObject) { element = ((IContextObject)object).getModelObject(); } + ISystemViewElementAdapter adapter = getViewAdapter(element); if (supportsDeferredQueries()) { // The adapter needs to be checked to be not null, otherwise @@ -388,23 +389,28 @@ public boolean hasChildren(Object element) { ISystemViewElementAdapter adapter = getViewAdapter(element); - if (element instanceof IContextObject) - { - return adapter.hasChildren((IContextObject)element); + if (adapter!=null) { + if (element instanceof IContextObject) + { + return adapter.hasChildren((IContextObject)element); + } + else + { + return adapter.hasChildren((IAdaptable)element); + } } else { - if (adapter != null) - { - return adapter.hasChildren((IAdaptable)element); - } - if (manager != null) { - if (manager.isDeferredAdapter(element)) - return manager.mayHaveChildren(element); + if (element instanceof IContextObject) { + element = ((IContextObject)element).getModelObject(); + } + if (manager != null && manager.isDeferredAdapter(element)) { + return manager.mayHaveChildren(element); } } return false; } + /** * inputChanged method comment. * AS LONG AS WE DON'T SUPPORT IWORKSPACE OBJECT THIS IS NOT NEEDED.