From: markt Date: Fri, 12 Jun 2009 16:45:34 +0000 (+0000) Subject: More error checking X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=c09122edb15d622c685aaaa65677e8ab96702c17;p=tomcat7.0 More error checking git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@784188 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/naming/resources/BaseDirContext.java b/java/org/apache/naming/resources/BaseDirContext.java index 625861898..3b6f9d0c8 100644 --- a/java/org/apache/naming/resources/BaseDirContext.java +++ b/java/org/apache/naming/resources/BaseDirContext.java @@ -202,12 +202,20 @@ public abstract class BaseDirContext implements DirContext { if (kv.length != 2 || kv[0].length() == 0 || kv[1].length() == 0) throw new IllegalArgumentException( sm.getString("resources.invalidAliasMapping", kvp)); - + + File aliasLoc = new File(kv[1]); + if (!aliasLoc.exists()) { + throw new IllegalArgumentException( + sm.getString("resources.invalidAliasNotExist", kv[1])); + } BaseDirContext context; - if (kv[1].endsWith(".war") && !(new File(kv[1]).isDirectory())) { + if (kv[1].endsWith(".war") && !(aliasLoc.isDirectory())) { context = new WARDirContext(); - } else { + } else if (aliasLoc.isDirectory()) { context = new FileDirContext(); + } else { + throw new IllegalArgumentException( + sm.getString("resources.invalidAliasFile", kv[1])); } context.setDocBase(kv[1]); addAlias(kv[0], context); diff --git a/java/org/apache/naming/resources/LocalStrings.properties b/java/org/apache/naming/resources/LocalStrings.properties index 51aceeb37..a58644193 100644 --- a/java/org/apache/naming/resources/LocalStrings.properties +++ b/java/org/apache/naming/resources/LocalStrings.properties @@ -30,6 +30,8 @@ resources.bindFailed=Bind failed: {0} resources.unbindFailed=Unbind failed: {0} resources.invalidAliasPath=The alias path ''{0}'' must start with ''/'' resources.invalidAliasMapping=The alias mapping ''{0}'' is not valid +resources.invalidAliasNotExist=The alias location ''{0}'' does not exist +resources.invalidAliasFile=The alias location ''{0}'' points to a file that is not a WAR file standardResources.alreadyStarted=Resources has already been started standardResources.directory=File base {0} is not a directory standardResources.exists=File base {0} does not exist