Author: rmannibucau Date: Fri Oct 11 05:26:48 2013 New Revision: 1531198 URL: http://svn.apache.org/r1531198 Log: TOMEE-1055 completing docBase find algorithm
Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Contexts.java Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Contexts.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Contexts.java?rev=1531198&r1=1531197&r2=1531198&view=diff ============================================================================== --- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Contexts.java (original) +++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Contexts.java Fri Oct 11 05:26:48 2013 @@ -23,6 +23,7 @@ import org.apache.catalina.Host; import org.apache.catalina.core.StandardContext; import org.apache.catalina.core.StandardEngine; import org.apache.catalina.core.StandardHost; +import org.apache.catalina.util.ContextName; import java.io.File; @@ -42,7 +43,7 @@ public class Contexts { public static File warPath(final Context standardContext) { final File file = realWarPath(standardContext); if (file == null) { - return file; + return null; } final String name = file.getName(); @@ -69,20 +70,29 @@ public class Contexts { container = container.getParent(); } - File file = new File(standardContext.getDocBase()); - if (!file.isAbsolute()) { - if (container == null) { - docBase = new File(engineBase(standardContext), standardContext.getDocBase()); - } else { - final String appBase = ((Host) container).getAppBase(); - file = new File(appBase); - if (!file.isAbsolute()) { - file = new File(engineBase(standardContext), appBase); + if (standardContext.getDocBase() != null) { + File file = new File(standardContext.getDocBase()); + if (!file.isAbsolute()) { + if (container == null) { + docBase = new File(engineBase(standardContext), standardContext.getDocBase()); + } else { + final String appBase = ((Host) container).getAppBase(); + file = new File(appBase); + if (!file.isAbsolute()) { + file = new File(engineBase(standardContext), appBase); + } + docBase = new File(file, standardContext.getDocBase()); } - docBase = new File(file, standardContext.getDocBase()); + } else { + docBase = file; } } else { - docBase = file; + final String path = standardContext.getPath(); + if (path == null) { + throw new IllegalStateException("Can't find docBase"); + } else { + docBase = new File(new ContextName(path, standardContext.getWebappVersion()).getBaseName()); + } } if (!docBase.exists()) { // for old compatibility, will be removed soon