SwingCopyJob's background worker thread (provided via an extended SwingWorker) now only handles updating of the EDT. It delegates the actual job of copying folders and files to a custom Runnable (CopyJobWorkDelegate class) that is run on its own thread. No perceivable decrease in performance. Next step is to have the CopyJobWorkDelegate manage a ThreadPoolExecutor that oversees a number of thread, one per file to be copied, for greater concurrency. Also modified to project's root gitignore file to prevent exclusion of the html DiffReport template.