writeHistory(data, file, path);
writeMetaData(data, file, path);
	private void addHistory(final JarPackageData data, final IPath path, final IProgressMonitor monitor) throws IOException, CoreException {		Assert.isNotNull(data);		Assert.isNotNull(path);		Assert.isNotNull(monitor);		final RefactoringDescriptorProxy[] proxies= data.getRefactoringDescriptors();		Arrays.sort(proxies, new Comparator() {			public final int compare(final Object first, final Object second) {				final RefactoringDescriptorProxy predecessor= (RefactoringDescriptorProxy) first;				final RefactoringDescriptorProxy successor= (RefactoringDescriptorProxy) second;				return (int) (predecessor.getTimeStamp() - successor.getTimeStamp());			}		});		File file= null;		OutputStream output= null;		try {			file= File.createTempFile("history", null); //$NON-NLS-1$			output= new BufferedOutputStream(new FileOutputStream(file));			try {				RefactoringCore.getHistoryService().writeRefactoringDescriptors(proxies, output, RefactoringDescriptor.NONE, false, monitor);				try {					output.close();					output= null;				} catch (IOException exception) {					// Do nothing				}				writeHistory(data, file, path);			} finally {				if (output != null) {					try {						output.close();					} catch (IOException exception) {						// Do nothing					}				}			}		} finally {			if (file != null)				file.delete();		}	}