// Move temp 2 file to sync directory
if (!tempFile2.renameTo(syncFile)) {
throw new IOException("Failed to move temp file: " + tempFile2.getAbsolutePath());
}
bus.post(new DownloadSongFinishedEvent(this, song));
} finally {
concurrentJobsSemaphore.release();
}
return song;