Index: src/build/PrepareToDeployAction.java =================================================================== --- src/build/PrepareToDeployAction.java (revision 3857) +++ src/build/PrepareToDeployAction.java (working copy) @@ -149,17 +149,27 @@ } }); Set names = new HashSet(); + IOException lastException = null; for (Library library : libs) { final VirtualFile[] files = library.getFiles(OrderRootType.CLASSES); for (VirtualFile virtualFile : files) { - if (virtualFile.getFileSystem() instanceof JarFileSystem) { - addLibraryJar(virtualFile, zipFile, name, zos, progressIndicator); + try { + if (virtualFile.getFileSystem() instanceof JarFileSystem) { + addLibraryJar(virtualFile, zipFile, name, zos, progressIndicator); + } + else { + makeAndAddLibraryJar(virtualFile, zos, zipFile, name, library, names, progressIndicator); + } + } catch (IOException e) { + lastException = e; } - else { - makeAndAddLibraryJar(virtualFile, zos, zipFile, name, library, names, progressIndicator); - } } } + // we want to try the best we can to build the jar, before throwing an + // exception + if (lastException != null) { + throw lastException; + } } finally { if (zos != null) zos.close();