Source:
<code>private boolean readAttributes(IConfigurationElement element, AbstractSupportElement item) { item.setId(element.getAttribute(ATTRIBUTE_ID)); item.setName(element.getAttribute(ATTRIBUTE_NAME)); item.setDescription(element.getAttribute(ATTRIBUTE_DESCRIPTION)); item.setUrl(element.getAttribute(ATTRIBUTE_URL)); String iconPath = element.getAttribute(ATTRIBUTE_ICON); if (iconPath != null) { ImageDescriptor descriptor = AbstractUIPlugin.imageDescriptorFromPlugin(element.getContributor().getName(), iconPath); if (descriptor != null) { item.setIcon(descriptor); } } boolean available = true; String featureId = element.getAttribute(ATTRIBUTE_FEATURE_ID); if (featureId != null) { IBundleGroup bundleGroup = getBundleGroup(featureId); if (bundleGroup == null) { available = false; } else { if (item.getName() == null) { item.setName(bundleGroup.getName()); } if (item.getDescription() == null) { item.setDescription(bundleGroup.getDescription()); } if (item.getIcon() == null) { String imageUrl = bundleGroup.getProperty(IBundleGroupConstants.FEATURE_IMAGE); if (imageUrl != null) { try { item.setIcon(ImageDescriptor.createFromURL(new URL(imageUrl))); } catch (MalformedURLException e) { } } } if (item instanceof SupportProduct) { ((SupportProduct) item).setBundleGroup(bundleGroup); } } } String pluginId = element.getAttribute(ATTRIBUTE_PLUGIN_ID); if (pluginId != null) { <START> IBundleGroup bundleGroupPlugin = getBundleGroup(pluginId); <END> if (bundleGroupPlugin != null) { if (item instanceof SupportProduct) { ((SupportProduct) item).setVersioningBundleGroup(bundleGroupPlugin); ; } } } if (item.getName() == null) { item.setName(Messages.SupportProviderManager_Product_Unknown); } return available; }</code><technical_language>getBundleGroup a feature ID? re-using ATTRIBUTE_PLUGIN_ID here</technical_language>

Target:
private boolean readAttributes(IConfigurationElement element, AbstractSupportElement item) { item.setId(element.getAttribute(ATTRIBUTE_ID)); item.setName(element.getAttribute(ATTRIBUTE_NAME)); item.setDescription(element.getAttribute(ATTRIBUTE_DESCRIPTION)); item.setUrl(element.getAttribute(ATTRIBUTE_URL)); String iconPath = element.getAttribute(ATTRIBUTE_ICON); if (iconPath != null) { ImageDescriptor descriptor = AbstractUIPlugin.imageDescriptorFromPlugin(element.getContributor().getName(), iconPath); if (descriptor != null) { item.setIcon(descriptor); } } boolean available = true; String featureId = element.getAttribute(ATTRIBUTE_FEATURE_ID); if (featureId != null) { IBundleGroup bundleGroup = getBundleGroup(featureId); if (bundleGroup == null) { available = false; } else { if (item.getName() == null) { item.setName(bundleGroup.getName()); } if (item.getDescription() == null) { item.setDescription(bundleGroup.getDescription()); } if (item.getIcon() == null) { String imageUrl = bundleGroup.getProperty(IBundleGroupConstants.FEATURE_IMAGE); if (imageUrl != null) { try { item.setIcon(ImageDescriptor.createFromURL(new URL(imageUrl))); } catch (MalformedURLException e) { } } } if (item instanceof SupportProduct) { ((SupportProduct) item).setBundleGroup(bundleGroup); } } } String versionPluginId = element.getAttribute(ATTRIBUTE_VERSION_PLUGIN_ID); if (versionPluginId != null) { IBundleGroup bundleVersionPlugin = getBundleGroup(versionPluginId); if (bundleVersionPlugin != null) { if (item instanceof SupportProduct) { ((SupportProduct) item).setVersioningBundleGroup(bundleVersionPlugin); } } } if (item.getName() == null) { item.setName(Messages.SupportProviderManager_Product_Unknown); } return available; }