IDEADEV-40972: Artifacts: special characters are not escaped in default output archive name

This commit is contained in:
nik
2009-10-23 09:31:44 +04:00
parent 5b77b11ed8
commit 95d1134b3f
2 changed files with 5 additions and 3 deletions
@@ -15,6 +15,7 @@
*/
package com.intellij.packaging.impl.artifacts;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.packaging.artifacts.ArtifactType;
import com.intellij.packaging.elements.CompositePackagingElement;
import com.intellij.packaging.elements.PackagingElementOutputKind;
@@ -45,6 +46,6 @@ public class JarArtifactType extends ArtifactType {
@NotNull
@Override
public CompositePackagingElement<?> createRootElement(@NotNull String artifactName) {
return new ArchivePackagingElement(artifactName + ".jar");
return new ArchivePackagingElement(FileUtil.sanitizeFileName(artifactName) + ".jar");
}
}
@@ -356,13 +356,14 @@ public class ArtifactEditorImpl implements ArtifactEditorEx {
setOutputPath(ArtifactUtil.getDefaultArtifactOutputPath(newArtifactName, myProject));
final CompositePackagingElement<?> root = getRootElement();
if (root instanceof ArchivePackagingElement) {
String oldFileName = FileUtil.sanitizeFileName(oldArtifactName);
final String name = ((ArchivePackagingElement)root).getArchiveFileName();
final String fileName = FileUtil.getNameWithoutExtension(name);
final String extension = FileUtil.getExtension(name);
if (fileName.equals(oldArtifactName) && extension.length() > 0) {
if (fileName.equals(oldFileName) && extension.length() > 0) {
myLayoutTreeComponent.editLayout(new Runnable() {
public void run() {
((ArchivePackagingElement)getRootElement()).setArchiveFileName(newArtifactName + "." + extension);
((ArchivePackagingElement)getRootElement()).setArchiveFileName(FileUtil.sanitizeFileName(newArtifactName) + "." + extension);
}
});
myLayoutTreeComponent.updateRootNode();