Author: markt Date: Wed May 12 11:10:03 2010 New Revision: 943447 URL: http://svn.apache.org/viewvc?rev=943447&view=rev Log: Fix remaining issue described in https://issues.apache.org/bugzilla/show_bug.cgi?id=49218 doLookup should return null if the resource cannot be found and should not throw an exception Fixes a potential infinite loop in VirtualDirContext
Modified: tomcat/trunk/java/org/apache/naming/resources/BaseDirContext.java tomcat/trunk/java/org/apache/naming/resources/FileDirContext.java tomcat/trunk/java/org/apache/naming/resources/LocalStrings.properties tomcat/trunk/java/org/apache/naming/resources/VirtualDirContext.java tomcat/trunk/java/org/apache/naming/resources/WARDirContext.java Modified: tomcat/trunk/java/org/apache/naming/resources/BaseDirContext.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/resources/BaseDirContext.java?rev=943447&r1=943446&r2=943447&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/naming/resources/BaseDirContext.java (original) +++ tomcat/trunk/java/org/apache/naming/resources/BaseDirContext.java Wed May 12 11:10:03 2010 @@ -1501,7 +1501,7 @@ public abstract class BaseDirContext imp protected abstract Attributes doGetAttributes(String name, String[] attrIds) throws NamingException; - protected abstract Object doLookup(String name) throws NamingException; + protected abstract Object doLookup(String name); protected abstract NamingEnumeration<Binding> doListBindings(String name) throws NamingException; Modified: tomcat/trunk/java/org/apache/naming/resources/FileDirContext.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/resources/FileDirContext.java?rev=943447&r1=943446&r2=943447&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/naming/resources/FileDirContext.java (original) +++ tomcat/trunk/java/org/apache/naming/resources/FileDirContext.java Wed May 12 11:10:03 2010 @@ -193,11 +193,9 @@ public class FileDirContext extends Base * * @param name the name of the object to look up * @return the object bound to name - * @exception NamingException if a naming exception is encountered */ @Override - protected Object doLookup(String name) - throws NamingException { + protected Object doLookup(String name) { Object result = null; File file = file(name); Modified: tomcat/trunk/java/org/apache/naming/resources/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/resources/LocalStrings.properties?rev=943447&r1=943446&r2=943447&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/naming/resources/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/naming/resources/LocalStrings.properties Wed May 12 11:10:03 2010 @@ -33,6 +33,7 @@ resources.invalidAliasMapping=The alias resources.invalidAliasNotAllowed=The alias location ''{0}'' is not allowed 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 +resources.invalidName=The name [{0}] is not valid standardResources.alreadyStarted=Resources has already been started standardResources.directory=File base {0} is not a directory standardResources.exists=File base {0} does not exist Modified: tomcat/trunk/java/org/apache/naming/resources/VirtualDirContext.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/resources/VirtualDirContext.java?rev=943447&r1=943446&r2=943447&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/naming/resources/VirtualDirContext.java (original) +++ tomcat/trunk/java/org/apache/naming/resources/VirtualDirContext.java Wed May 12 11:10:03 2010 @@ -159,7 +159,7 @@ public class VirtualDirContext extends F } @Override - protected Object doLookup(String name) throws NamingException { + protected Object doLookup(String name) { // handle "virtual" tlds if (name.startsWith("/WEB-INF/") && name.endsWith(".tld")) { @@ -178,7 +178,7 @@ public class VirtualDirContext extends F } } - return super.lookup(name); + return super.doLookup(name); } /** Modified: tomcat/trunk/java/org/apache/naming/resources/WARDirContext.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/resources/WARDirContext.java?rev=943447&r1=943446&r2=943447&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/naming/resources/WARDirContext.java (original) +++ tomcat/trunk/java/org/apache/naming/resources/WARDirContext.java Wed May 12 11:10:03 2010 @@ -32,6 +32,7 @@ import java.util.zip.ZipFile; import javax.naming.Binding; import javax.naming.CompositeName; +import javax.naming.InvalidNameException; import javax.naming.Name; import javax.naming.NameClassPair; import javax.naming.NamingEnumeration; @@ -190,13 +191,17 @@ public class WARDirContext extends BaseD * * @param strName the name of the object to look up * @return the object bound to name - * @exception NamingException if a naming exception is encountered */ @Override - protected Object doLookup(String strName) - throws NamingException { + protected Object doLookup(String strName) { - Name name = new CompositeName(strName); + Name name; + try { + name = new CompositeName(strName); + } catch (InvalidNameException e) { + log.info(sm.getString("resources.invalidName", strName), e); + return null; + } if (name.isEmpty()) return this; --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org