Bug 37345 javaElementFilters extension point isn't robust against errors in the plugin.xml
1) create a javaElementFilters extension, but leave the markup in the plugin.xml incomplete 2) start-up the workbench -> the package explorer doesn't come up The reason is that the javaElementFilters extension point implementation fires an assertion when the xml isn't complete. This is not correct since this isn't a programming error. In addition, an error in the plugin.xml shouldn't never block the workbench from properly coming up.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/FilterDescriptor.java
import org.eclipse.jdt.internal.ui.IJavaStatusConstants;
/**
 * Represents a custom filter which is provided by the
 * "org.eclipse.jdt.ui.javaElementFilters" extension point.
 * 
 * since 2.0
 */
public class FilterDescriptor implements Comparable {
	private static String PATTERN_FILTER_ID_PREFIX= "_patternFilterId_"; 
	private static final String EXTENSION_POINT_NAME= "javaElementFilters"; 
	private static final String FILTER_TAG= "filter"; 
	private static final String PATTERN_ATTRIBUTE= "pattern"; 	
	private static final String ID_ATTRIBUTE= "id"; 
	private static final String VIEW_ID_ATTRIBUTE= "viewId"; 
	private static final String CLASS_ATTRIBUTE= "class"; 
	private static final String NAME_ATTRIBUTE= "name"; 
	private static final String ENABLED_ATTRIBUTE= "enabled"; 
	private static final String DESCRIPTION_ATTRIBUTE= "description"; 	
	/**
	 * @deprecated	use "enabled" instead
	 */
	private static final String SELECTED_ATTRIBUTE= "selected"; 
	private static FilterDescriptor[] fgFilterDescriptors;
	private IConfigurationElement fElement;
	/**
	 * Returns all contributed Java element filters.
	 */
	public static FilterDescriptor[] getFilterDescriptors() {
		if (fgFilterDescriptors == null) {
			IPluginRegistry registry= Platform.getPluginRegistry();