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
/**
	 * Creates a new <code>ViewerFilter</code>.
	 * This method is only valid for viewer filters.
	 * 
	 * @throws AssertionFailedException if this is a pattern filter
	 * 
	 */
	public ViewerFilter createViewerFilter() {
		Assert.isTrue(isCustomFilter());
		ViewerFilter result= null;
		try {
			result= (ViewerFilter)fElement.createExecutableExtension(CLASS_ATTRIBUTE);
		} catch (CoreException ex) {
			handleError(ex.getStatus());
		} catch (ClassCastException ex) {
			handleError(new Status(IStatus.ERROR, JavaUI.ID_PLUGIN, IJavaStatusConstants.INTERNAL_ERROR, ex.getLocalizedMessage(), ex));
		
		} catch (NoClassDefFoundError ex) {
			handleError(new Status(IStatus.ERROR, JavaUI.ID_PLUGIN, IJavaStatusConstants.INTERNAL_ERROR, ex.getLocalizedMessage(), ex));
		}
		return result;
	}
	private void handleError(IStatus status) {
		Shell shell= JavaPlugin.getActiveWorkbenchShell();		
		if (shell != null) {
			String title= FilterMessages.getString("FilterDescriptor.filterCreationError.title"); 
			String message= FilterMessages.getFormattedString("FilterDescriptor.filterCreationError.message", getId()); 
			ErrorDialog.openError(shell, title, message, status);
		}
		JavaPlugin.log(status);