if (!isAutoBuilding() && fJarPackage.isBuildingIfNeeded() && fJarPackage.areClassFilesExported()) {
if (!isAutoBuilding() && fJarPackage.isBuildingIfNeeded() && fJarPackage.areGeneratedFilesExported()) {
	public void singleRun(IProgressMonitor progressMonitor) throws InvocationTargetException, InterruptedException {		try {			if (!preconditionsOK())				throw new InvocationTargetException(null, JarPackagerMessages.getString("JarFileExportOperation.jarCreationFailedSeeDetails")); //$NON-NLS-1$			int totalWork= countSelectedElements();			if (!isAutoBuilding() && fJarPackage.isBuildingIfNeeded() && fJarPackage.areClassFilesExported()) {				int subMonitorTicks= totalWork/10;				totalWork += subMonitorTicks;				progressMonitor.beginTask("", totalWork); //$NON-NLS-1$				SubProgressMonitor subProgressMonitor= new SubProgressMonitor(progressMonitor, subMonitorTicks, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK);				buildProjects(subProgressMonitor);			} else				progressMonitor.beginTask("", totalWork); //$NON-NLS-1$									fJarWriter= fJarPackage.createJarWriter(fParentShell);			exportSelectedElements(progressMonitor);			if (getStatus().getSeverity() != IStatus.ERROR) {				progressMonitor.subTask(JarPackagerMessages.getString("JarFileExportOperation.savingFiles")); //$NON-NLS-1$				saveFiles();			}		} catch (CoreException ex) {			addToStatus(ex);		} finally {			try {				if (fJarWriter != null)					fJarWriter.close();			} catch (CoreException ex) {				addToStatus(ex);			}			progressMonitor.done();		}	}