isRegistryFilledFromCache = false; clearRegistryCache(); log(new Status(IStatus.ERROR, RegistryMessages.OWNER_NAME, 0, RegistryMessages.registry_bad_cache, e));
	public ExtensionRegistry(RegistryStrategy registryStrategy, Object masterToken, Object userToken) {		if (registryStrategy != null)			strategy = registryStrategy;		else			strategy = new RegistryStrategy(null, true);		// split strategies - reduce number of "instanceof" calls		if (registryStrategy instanceof ICompatibilityStrategy)			compatibilityStrategy = (ICompatibilityStrategy) strategy;		// create the file manager right away		setFileManager(strategy.getStorage(), strategy.isCacheReadOnly());		this.masterToken = masterToken;		this.userToken = userToken;		registryObjects = new RegistryObjectManager(this);		if (strategy.cacheUse()) {			// Try to read the registry from the cache first. If that fails, create a new registry			long start = 0;			if (debug())				start = System.currentTimeMillis();			//The cache is made of several files, find the real names of these other files. If all files are found, try to initialize the objectManager			if (checkCache()) {				try {					theTableReader.setTableFile(cacheFileManager.lookup(TableReader.TABLE, false));					theTableReader.setExtraDataFile(cacheFileManager.lookup(TableReader.EXTRA, false));					theTableReader.setMainDataFile(cacheFileManager.lookup(TableReader.MAIN, false));					theTableReader.setContributionsFile(cacheFileManager.lookup(TableReader.CONTRIBUTIONS, false));					theTableReader.setOrphansFile(cacheFileManager.lookup(TableReader.ORPHANS, false));					isRegistryFilledFromCache = registryObjects.init(computeTimeStamp());				} catch (IOException e) {					// Ignore the exception. The registry will be rebuilt from the xml files.				}			}			if (debug() && isRegistryFilledFromCache)				System.out.println("Reading registry cache: " + (System.currentTimeMillis() - start)); //$NON-NLS-1$			if (debug()) {				if (!isRegistryFilledFromCache)					System.out.println("Reloading registry from manifest files..."); //$NON-NLS-1$				else					System.out.println("Using registry cache..."); //$NON-NLS-1$			}		}		if (debugEvents())			addRegistryChangeListener(new IRegistryChangeListener() {				public void registryChanged(IRegistryChangeEvent event) {					System.out.println(event);				}			});		// Do extra start processing if specified in the registry strategy		strategy.onStart(this);	}