ExtensionPoint xpt = (ExtensionPoint) loadExtensionPoint(offset); int[] children = xpt.getRawChildren(); int nbrOfExtension = children.length; for (int i = 0; i < nbrOfExtension; i++) { Extension loaded = basicLoadExtension(mainInput); objects.add(loaded, holdObjects);
synchronized (mainDataFile) { ExtensionPoint xpt = (ExtensionPoint) loadExtensionPoint(offset); int[] children = xpt.getRawChildren(); int nbrOfExtension = children.length; for (int i = 0; i < nbrOfExtension; i++) { Extension loaded = basicLoadExtension(mainInput); objects.add(loaded, holdObjects); }  for (int i = 0; i < nbrOfExtension; i++) { int nbrOfCe = mainInput.readInt(); for (int j = 0; j < nbrOfCe; j++) {   objects.add(loadConfigurationElementAndChildren(mainInput, null, 1, 2, objects, -1), holdObjects); } } return xpt;
	public ExtensionPoint loadExtensionPointTree(int offset, RegistryObjectManager objects) {		try {			ExtensionPoint xpt = (ExtensionPoint) loadExtensionPoint(offset);			int[] children = xpt.getRawChildren();			int nbrOfExtension = children.length;			for (int i = 0; i < nbrOfExtension; i++) {				Extension loaded = basicLoadExtension(mainInput);				objects.add(loaded, holdObjects);			}			for (int i = 0; i < nbrOfExtension; i++) {				int nbrOfCe = mainInput.readInt();				for (int j = 0; j < nbrOfCe; j++) {					objects.add(loadConfigurationElementAndChildren(mainInput, extraInput, 1, 2, objects, -1), holdObjects);				}			}			return xpt;		} catch (IOException e) {			String message = NLS.bind(RegistryMessages.meta_regCacheIOExceptionReading, mainDataFile);			log(new Status(IStatus.ERROR, RegistryMessages.OWNER_NAME, fileError, message, e));			if (DEBUG)				log(new Status(IStatus.ERROR, RegistryMessages.OWNER_NAME, fileError, "Error reading an extension point tree (" + offset + ") from the registry cache", e)); //$NON-NLS-1$//$NON-NLS-2$			return null;		} finally {			closeExtraFile();			closeInputFile();		}	}