From ba691da22654c3747e4b6fcac503fd12e0d446be Mon Sep 17 00:00:00 2001 From: nik Date: Wed, 28 Jul 2010 10:17:42 +0400 Subject: [PATCH] create valid manifest.mf file in artifact editor --- .../impl/elements/ManifestFileUtil.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/elements/ManifestFileUtil.java b/java/compiler/impl/src/com/intellij/packaging/impl/elements/ManifestFileUtil.java index f326e2f1e831..21433a5e74e3 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/elements/ManifestFileUtil.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/elements/ManifestFileUtil.java @@ -249,13 +249,19 @@ public class ManifestFileUtil { VirtualFile dir = files[0]; try { if (!dir.getName().equals(MANIFEST_DIR_NAME)) { - VirtualFile newDir = dir.findChild(MANIFEST_DIR_NAME); - if (newDir == null) { - newDir = dir.createChildDirectory(this, MANIFEST_DIR_NAME); - } - dir = newDir; + dir = VfsUtil.createDirectoryIfMissing(dir, MANIFEST_DIR_NAME); } - result.setResult(dir.createChildData(this, MANIFEST_FILE_NAME)); + final VirtualFile file = dir.createChildData(this, MANIFEST_FILE_NAME); + final OutputStream output = file.getOutputStream(this); + try { + final Manifest manifest = new Manifest(); + ManifestBuilder.setVersionAttribute(manifest.getMainAttributes()); + manifest.write(output); + } + finally { + output.close(); + } + result.setResult(file); } catch (IOException e) { exc.set(e);