You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/02/20 16:25:11 UTC
svn commit: r1448224 -
/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
Author: rmannibucau
Date: Wed Feb 20 15:25:11 2013
New Revision: 1448224
URL: http://svn.apache.org/r1448224
Log:
better error logging + management of wardircontext
Modified:
tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java?rev=1448224&r1=1448223&r2=1448224&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java (original)
+++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java Wed Feb 20 15:25:11 2013
@@ -25,9 +25,9 @@ import org.apache.catalina.deploy.Naming
import org.apache.catalina.deploy.WebXml;
import org.apache.catalina.startup.ContextConfig;
import org.apache.naming.factory.Constants;
+import org.apache.naming.resources.BaseDirContext;
import org.apache.naming.resources.DirContextURLConnection;
import org.apache.naming.resources.DirContextURLStreamHandler;
-import org.apache.naming.resources.FileDirContext;
import org.apache.naming.resources.ProxyDirContext;
import org.apache.openejb.OpenEJBRuntimeException;
import org.apache.openejb.assembler.classic.AppInfo;
@@ -347,16 +347,22 @@ public class OpenEJBContextConfig extend
if (connection instanceof DirContextURLConnection) {
final DirContextURLStreamHandler handler = DirContextURLStreamHandler.class.cast(Reflections.get(currentUrl, "handler"));
final ProxyDirContext dirContext = ProxyDirContext.class.cast(Reflections.get(handler, "context"));
- final FileDirContext fileDirContext = FileDirContext.class.cast(Reflections.get(dirContext, "dirContext"));
final String host = String.class.cast(Reflections.get(dirContext, "hostName"));
final String contextPath = String.class.cast(Reflections.get(dirContext, "contextPath"));
- file = file.replace("/" + host + contextPath , fileDirContext.getDocBase());
+ final Object context = Reflections.get(dirContext, "dirContext");
+
+ if (BaseDirContext.class.isInstance(context)) {
+ file = file.replace("/" + host + contextPath, BaseDirContext.class.cast(context).getDocBase());
+ } else {
+ throw new OpenEJBRuntimeException("Context not supported: " + context);
+ }
+
currentUrlAsFile = new File(file);
} else {
- throw new OpenEJBRuntimeException("can't find webapp [" + webAppInfo.contextRoot + "]");
+ throw new OpenEJBRuntimeException("can't find webapp [" + webAppInfo.contextRoot + "], connection is not a DirContextURLConnection " + connection);
}
} catch (final Exception ex) {
- throw new OpenEJBRuntimeException("can't find webapp [" + webAppInfo.contextRoot + "]");
+ throw new OpenEJBRuntimeException("can't find webapp [" + webAppInfo.contextRoot + "]", ex);
}
} else {
throw new OpenEJBRuntimeException("protocol not supported '" + currentUrl.getProtocol() + "'");