Headers existingHeaders = checkManifestAndParent(cacheLocation, symbolicName, version.toString(), Byte.parseByte(generatedFrom.getAttribute(PluginConverterImpl.MANIFEST_TYPE_ATTRIBUTE))); if (existingHeaders != null) return existingHeaders;
	private Dictionary generateManifest(Dictionary originalManifest) throws BundleException {		String cacheLocation = System.getProperty(LocationManager.PROP_MANIFEST_CACHE); 		if (getSymbolicName() != null) {			Headers existingHeaders = checkManifest(cacheLocation);			Location parentConfiguration = null;			if (existingHeaders == null && (parentConfiguration = LocationManager.getConfigurationLocation().getParentLocation()) != null) {				existingHeaders = checkManifest(new File(parentConfiguration.getURL().getFile(), FrameworkAdaptor.FRAMEWORK_SYMBOLICNAME + '/' + LocationManager.MANIFESTS_DIR).toString());							}			if (existingHeaders != null)				return existingHeaders;		}		PluginConverterImpl converter = PluginConverterImpl.getDefault();		Dictionary generatedManifest;		try {			generatedManifest = converter.convertManifest(getBaseFile(), true, null);		} catch (PluginConversionException pce) {			String message = EclipseAdaptorMsg.formatter.getString("ECLIPSE_CONVERTER_ERROR_CONVERTING", getBaseFile()); //$NON-NLS-1$			throw new BundleException(message, pce); //$NON-NLS-1$		}		ManifestElement generatedFrom = ManifestElement.parseHeader(PluginConverterImpl.GENERATED_FROM, (String) generatedManifest.get(PluginConverterImpl.GENERATED_FROM))[0];		setManifestTimeStamp(Long.parseLong(generatedFrom.getValue()));		setManifestType(Byte.parseByte(generatedFrom.getAttribute(PluginConverterImpl.MANIFEST_TYPE_ATTRIBUTE)));		//merge the original manifest with the generated one		if (originalManifest != null) {			Enumeration enum = originalManifest.keys();			while (enum.hasMoreElements()) {				Object key = enum.nextElement();				generatedManifest.put(key, originalManifest.get(key));			}		}