From 16b0304fd18bbda8806ed8daa0eafed283c76927 Mon Sep 17 00:00:00 2001 From: Conor MacNeill Date: Wed, 20 Mar 2002 13:37:05 +0000 Subject: [PATCH] Fix for directory based naming when descriptor in root of descriptor dir PR: 4822 git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271922 13f79535-47bb-0310-9956-ffa450edef68 --- .../taskdefs/optional/ejb/GenericDeploymentTool.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java index 616e615e8..94127ec2f 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java @@ -577,8 +577,14 @@ public class GenericDeploymentTool implements EJBDeploymentTool { } baseName = descriptorFileName.substring(0, endBaseName); } else if (config.namingScheme.getValue().equals(EjbJar.NamingScheme.DIRECTORY)) { - int lastSeparatorIndex = descriptorFileName.lastIndexOf(File.separator); - String dirName = descriptorFileName.substring(0, lastSeparatorIndex); + File descriptorFile = new File(config.descriptorDir, descriptorFileName); + String path = descriptorFile.getAbsolutePath(); + int lastSeparatorIndex + = path.lastIndexOf(File.separator); + if (lastSeparatorIndex == -1) { + throw new BuildException("Unable to determine directory name holding descriptor"); + } + String dirName = path.substring(0, lastSeparatorIndex); int dirSeparatorIndex = dirName.lastIndexOf(File.separator); if (dirSeparatorIndex != -1) { dirName = dirName.substring(dirSeparatorIndex + 1);