Source:
<code>public IStatus incrementalPublishModule(IProgressMonitor monitor) throws CoreException { java.io.File destFile = destinationArchive.toFile(); if( !destFile.exists() || destFile.isDirectory()) { return fullPublishModule(monitor); } String name = "Compressing " + module.getName(); monitor.beginTask(name, 1000); monitor.setTaskName(name); IModule[] moduleAsArray = new IModule[]{module}; IStatus[] operationStatus; ArrayList<IStatus> results = new ArrayList<IStatus>(); int changeCount = countChanges(getDeltaForModule(new IModule[]{module})); if( changeCount > 0) { IProgressMonitor changeMonitor = ProgressMonitorUtil.submon(monitor, 300); changeMonitor.beginTask("Copying changed resources", changeCount * 100); results.addAll(Arrays.asList(publishChanges(moduleAsArray, changeMonitor))); changeMonitor.done(); } List<IModule[]> removed = getRemovedChildModules(); IModule[] children = getChildModules(moduleAsArray); if( children !=null) results.addAll(Arrays.asList(handleChildrenDeltas(moduleAsArray, children, ProgressMonitorUtil.submon(monitor, 600)))); IProgressMonitor removedMonitor = ProgressMonitorUtil.submon(monitor, 100); removedMonitor.beginTask("Deleting removed modules", removed.size() * 100); Iterator<IModule[]> i = removed.iterator(); <START> while(i.hasNext()) { <END> results.addAll(Arrays.asList(removeModule(i.next()))); removedMonitor.worked(100); } operationStatus = (IStatus[]) results.toArray(new IStatus[results.size()]); removedMonitor.done(); TrueZipUtil.umount(); IStatus finalStatus = createModuleStatus(moduleAsArray, operationStatus); monitor.done(); return finalStatus; }</code><technical_language>check is monitor is cancelled</technical_language>

Target:
public IStatus incrementalPublishModule(IProgressMonitor monitor) throws CoreException { java.io.File destFile = destinationArchive.toFile(); if( !destFile.exists() || destFile.isDirectory()) { return fullPublishModule(monitor); } String name = "Compressing " + module.getName(); monitor.beginTask(name, 1000); monitor.setTaskName(name); IModule[] moduleAsArray = new IModule[]{module}; IStatus[] operationStatus; ArrayList<IStatus> results = new ArrayList<IStatus>(); int changeCount = countChanges(getDeltaForModule(new IModule[]{module})); if( changeCount > 0) { IProgressMonitor changeMonitor = ProgressMonitorUtil.submon(monitor, 300); changeMonitor.beginTask("Copying changed resources", changeCount * 100); results.addAll(Arrays.asList(publishChanges(moduleAsArray, changeMonitor))); changeMonitor.done(); } List<IModule[]> removed = getRemovedChildModules(); IModule[] children = getChildModules(moduleAsArray); if( children !=null) results.addAll(Arrays.asList(handleChildrenDeltas(moduleAsArray, children, ProgressMonitorUtil.submon(monitor, 600)))); IProgressMonitor removedMonitor = ProgressMonitorUtil.submon(monitor, 100); removedMonitor.beginTask("Deleting removed modules", removed.size() * 100); Iterator<IModule[]> i = removed.iterator(); while(i.hasNext() && !monitor.isCanceled()) { results.addAll(Arrays.asList(removeModule(i.next()))); removedMonitor.worked(100); } operationStatus = (IStatus[]) results.toArray(new IStatus[results.size()]); removedMonitor.done(); TrueZipUtil.umount(); IStatus finalStatus = createModuleStatus(moduleAsArray, operationStatus); monitor.done(); return finalStatus; }