1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-14 12:35:22 +02:00

[226761] [regression] NPE when expanding filter pools and filters in the Team View

https://bugs.eclipse.org/bugs/show_bug.cgi?id=226761
This commit is contained in:
David Dykstal 2008-05-16 02:07:24 +00:00
parent 40913e3cea
commit a65cf9a39a
3 changed files with 44 additions and 39 deletions

View file

@ -21,6 +21,7 @@
* Martin Oberhuber (Wind River) - [190271] Move ISystemViewInputProvider to Core * Martin Oberhuber (Wind River) - [190271] Move ISystemViewInputProvider to Core
* Xuan Chen (IBM) - [160775] [api] rename (at least within a zip) blocks UI thread * Xuan Chen (IBM) - [160775] [api] rename (at least within a zip) blocks UI thread
* David Dykstal (IBM) - [224671] [api] org.eclipse.rse.core API leaks non-API types * David Dykstal (IBM) - [224671] [api] org.eclipse.rse.core API leaks non-API types
* David Dykstal (IBM) - [226761] fix NPE in team view when expanding items
*******************************************************************************/ *******************************************************************************/
package org.eclipse.rse.internal.ui.view; package org.eclipse.rse.internal.ui.view;
@ -120,20 +121,21 @@ public class SystemViewFilterAdapter extends AbstractSystemViewAdapter
/** /**
* Returns an image descriptor for the image. More efficient than getting the image. * Returns an image descriptor for the image. More efficient than getting the image.
* @param element The element for which an image is desired * @param element The element for which an image is desired
* @return the desired image descriptor
*/ */
public ImageDescriptor getImageDescriptor(Object element) public ImageDescriptor getImageDescriptor(Object element) {
{ ImageDescriptor filterImage = null;
//return RSEUIPlugin.getDefault().getImageDescriptor(ISystemConstants.ICON_SYSTEM_FILTER_ID); ISystemFilter filter = getFilter(element);
ImageDescriptor filterImage = null; if (filter.getProvider() != null) {
ISystemFilter filter = getFilter(element); ISubSystemConfigurationAdapter adapter = (ISubSystemConfigurationAdapter) filter.getProvider().getAdapter(ISubSystemConfigurationAdapter.class);
if (filter.getProvider() != null) if (adapter != null) {
{ filterImage = adapter.getSystemFilterImage(filter);
ISubSystemConfigurationAdapter adapter = (ISubSystemConfigurationAdapter)filter.getProvider().getAdapter(ISubSystemConfigurationAdapter.class); }
filterImage = adapter.getSystemFilterImage(filter); }
} if (filterImage == null) {
if (filterImage == null) filterImage = RSEUIPlugin.getDefault().getImageDescriptor(ISystemIconConstants.ICON_SYSTEM_FILTER_ID);
filterImage = RSEUIPlugin.getDefault().getImageDescriptor(ISystemIconConstants.ICON_SYSTEM_FILTER_ID); }
return filterImage; return filterImage;
} }
/** /**

View file

@ -16,6 +16,7 @@
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API * Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
* Martin Oberhuber (Wind River) - [186748] Move ISubSystemConfigurationAdapter from UI/rse.core.subsystems.util * Martin Oberhuber (Wind River) - [186748] Move ISubSystemConfigurationAdapter from UI/rse.core.subsystems.util
* Xuan Chen (IBM) - [160775] [api] rename (at least within a zip) blocks UI thread * Xuan Chen (IBM) - [160775] [api] rename (at least within a zip) blocks UI thread
* David Dykstal (IBM) - [226761] fix NPE in team view when expanding items
*******************************************************************************/ *******************************************************************************/
package org.eclipse.rse.internal.ui.view; package org.eclipse.rse.internal.ui.view;
@ -90,21 +91,21 @@ public class SystemViewFilterPoolAdapter extends AbstractSystemViewAdapter
/** /**
* Returns an image descriptor for the image. More efficient than getting the image. * Returns an image descriptor for the image. More efficient than getting the image.
* @param element The element for which an image is desired * @param element The element for which an image is desired
* @return the desired image descriptor
*/ */
public ImageDescriptor getImageDescriptor(Object element) public ImageDescriptor getImageDescriptor(Object element) {
{ ImageDescriptor poolImage = null;
//return RSEUIPlugin.getDefault().getImageDescriptor(ISystemConstants.ICON_SYSTEM_FILTERPOOL_ID); ISystemFilterPool pool = (ISystemFilterPool) element;
ImageDescriptor poolImage = null; if (pool.getProvider() != null) {
ISystemFilterPool pool = (ISystemFilterPool)element; ISubSystemConfigurationAdapter adapter = (ISubSystemConfigurationAdapter) pool.getProvider().getAdapter(ISubSystemConfigurationAdapter.class);
if (pool.getProvider() != null) if (adapter != null) {
{ poolImage = adapter.getSystemFilterPoolImage(pool);
}
ISubSystemConfigurationAdapter adapter = (ISubSystemConfigurationAdapter)pool.getProvider().getAdapter(ISubSystemConfigurationAdapter.class); }
poolImage = adapter.getSystemFilterPoolImage(pool); if (poolImage == null) {
} poolImage = RSEUIPlugin.getDefault().getImageDescriptor(ISystemIconConstants.ICON_SYSTEM_FILTERPOOL_ID);
if (poolImage == null) }
poolImage = RSEUIPlugin.getDefault().getImageDescriptor(ISystemIconConstants.ICON_SYSTEM_FILTERPOOL_ID); return poolImage;
return poolImage;
} }
/** /**

View file

@ -16,12 +16,12 @@
* Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API * Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API
* Martin Oberhuber (Wind River) - [186748] Move ISubSystemConfigurationAdapter from UI/rse.core.subsystems.util * Martin Oberhuber (Wind River) - [186748] Move ISubSystemConfigurationAdapter from UI/rse.core.subsystems.util
* Xuan Chen (IBM) - [160775] [api] rename (at least within a zip) blocks UI thread * Xuan Chen (IBM) - [160775] [api] rename (at least within a zip) blocks UI thread
* David Dykstal (IBM) - [226761] fix NPE in team view when expanding items
*******************************************************************************/ *******************************************************************************/
package org.eclipse.rse.internal.ui.view; package org.eclipse.rse.internal.ui.view;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Vector;
import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
@ -79,19 +79,21 @@ public class SystemViewFilterStringAdapter extends AbstractSystemViewAdapter
/** /**
* Returns an image descriptor for the image. More efficient than getting the image. * Returns an image descriptor for the image. More efficient than getting the image.
* @param element The element for which an image is desired * @param element The element for which an image is desired
* @return the desired image descriptor
*/ */
public ImageDescriptor getImageDescriptor(Object element) public ImageDescriptor getImageDescriptor(Object element) {
{ ImageDescriptor filterImage = null;
ImageDescriptor filterImage = null;
ISystemFilterString filterString = getFilterString(element); ISystemFilterString filterString = getFilterString(element);
if (filterString.getProvider() != null) if (filterString.getProvider() != null) {
{ ISubSystemConfigurationAdapter adapter = (ISubSystemConfigurationAdapter) filterString.getProvider().getAdapter(ISubSystemConfigurationAdapter.class);
ISubSystemConfigurationAdapter adapter = (ISubSystemConfigurationAdapter)filterString.getProvider().getAdapter(ISubSystemConfigurationAdapter.class); if (adapter != null) {
filterImage = adapter.getSystemFilterStringImage(filterString); filterImage = adapter.getSystemFilterStringImage(filterString);
} }
if (filterImage == null) }
filterImage = RSEUIPlugin.getDefault().getImageDescriptor(ISystemIconConstants.ICON_SYSTEM_FILTERSTRING_ID); if (filterImage == null) {
return filterImage; filterImage = RSEUIPlugin.getDefault().getImageDescriptor(ISystemIconConstants.ICON_SYSTEM_FILTERSTRING_ID);
}
return filterImage;
} }
/** /**