fix possible npe with unpacked war files

This commit is contained in:
Sebastian Sdorra
2013-09-10 21:11:30 +02:00
parent 69715bf7d3
commit c09b92bc04

View File

@@ -35,6 +35,7 @@ package sonia.scm.web.cgi;
//~--- non-JDK imports --------------------------------------------------------
import com.google.common.base.Strings;
import com.google.common.io.ByteStreams;
import org.slf4j.Logger;
@@ -149,10 +150,14 @@ public class DefaultCGIExecutor extends AbstractCGIExecutor
String path = command.getAbsolutePath();
String pathTranslated = request.getPathTranslated();
if (Util.isEmpty(pathTranslated))
if (Strings.isNullOrEmpty(pathTranslated))
{
pathTranslated = path;
}
else
{
pathTranslated = HttpUtil.removeMatrixParameter(pathTranslated);
}
env.set(ENV_PATH_TRANSLATED, pathTranslated);
@@ -296,8 +301,6 @@ public class DefaultCGIExecutor extends AbstractCGIExecutor
String uri = HttpUtil.removeMatrixParameter(request.getRequestURI());
String scriptName = uri.substring(0, uri.length() - pathInfo.length());
String scriptPath = context.getRealPath(scriptName);
String pathTranslated =
HttpUtil.removeMatrixParameter(request.getPathTranslated());
int len = request.getContentLength();
EnvList env = new EnvList();
@@ -331,7 +334,6 @@ public class DefaultCGIExecutor extends AbstractCGIExecutor
env.set(ENV_CONTENT_TYPE, Util.nonNull(request.getContentType()));
env.set(ENV_GATEWAY_INTERFACE, CGI_VERSION);
env.set(ENV_PATH_INFO, pathInfo);
env.set(ENV_PATH_TRANSLATED, pathTranslated);
env.set(ENV_QUERY_STRING, request.getQueryString());
env.set(ENV_REMOTE_ADDR, request.getRemoteAddr());
env.set(ENV_REMOTE_HOST, request.getRemoteHost());
@@ -351,8 +353,7 @@ public class DefaultCGIExecutor extends AbstractCGIExecutor
env.set(ENV_SERVER_PORT, Integer.toString(serverPort));
env.set(ENV_SERVER_PROTOCOL, Util.nonNull(request.getProtocol()));
env.set(
ENV_SERVER_SOFTWARE,
env.set(ENV_SERVER_SOFTWARE,
SERVER_SOFTWARE_PREFIX.concat(SCMContext.getContext().getVersion()));
Enumeration enm = request.getHeaderNames();