From f9f1391057492890ff79fd8b8f1a94128f92e156 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Mon, 17 Jun 2013 19:39:21 +0000
Subject: [PATCH]  * SusiMail: Fix classpath problem when started manually
 (ticket #957)    - Remove a couple of dependencies    - Add jetty-util.jar to
 console classpath just in case

---
 apps/routerconsole/java/build.xml                      |  2 +-
 .../src/net/i2p/router/web/WebAppConfiguration.java    | 10 ++++++++--
 .../src/src/org/mortbay/servlet/MultiPartRequest.java  |  6 ++----
 3 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/apps/routerconsole/java/build.xml b/apps/routerconsole/java/build.xml
index a9e196912f..a5f4511678 100644
--- a/apps/routerconsole/java/build.xml
+++ b/apps/routerconsole/java/build.xml
@@ -106,7 +106,7 @@
                 <!-- DTG added in 0.8.4, not in the classpath for very old installs, before we changed wrapper.config to specify * -->
                 <!-- very old installs don't have i2psnark,jstl,standard in the classpath... not added in WebAppConfiguration any more -->
                 <!-- All new jetty 7 jars should have been in 0.9.6, added in 0.9.7 -->
-                <attribute name="Class-Path" value="i2p.jar router.jar jrobin.jar desktopgui.jar i2psnark.jar jstl.jar standard.jar jetty-continuation.jar jetty-http.jar jetty-io.jar jetty-security.jar jetty-servlet.jar jetty-servlets.jar jetty-webapp.jar" />
+                <attribute name="Class-Path" value="i2p.jar router.jar jrobin.jar desktopgui.jar i2psnark.jar jstl.jar standard.jar jetty-continuation.jar jetty-http.jar jetty-io.jar jetty-security.jar jetty-servlet.jar jetty-servlets.jar jetty-util.jar jetty-webapp.jar" />
                 <attribute name="Implementation-Version" value="${full.version}" />
                 <attribute name="Built-By" value="${build.built-by}" />
                 <attribute name="Build-Date" value="${build.timestamp}" />
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/WebAppConfiguration.java b/apps/routerconsole/java/src/net/i2p/router/web/WebAppConfiguration.java
index 7787cf2af4..6511af2e7c 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/WebAppConfiguration.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/WebAppConfiguration.java
@@ -88,7 +88,11 @@ public class WebAppConfiguration implements Configuration {
 
         File dir = libDir;
         String cp;
-        if (pluginDir.exists()) {
+        if (ctxPath.equals("/susimail")) {
+            // Ticket #957... don't know why...
+            // Only really required if started manually, but we don't know that from here
+            cp = "jetty-util.jar";
+        } else if (pluginDir.exists()) {
             File consoleDir = new File(pluginDir, "console");
             Properties props = RouterConsoleRunner.webAppProperties(consoleDir.getAbsolutePath());
             cp = props.getProperty(RouterConsoleRunner.PREFIX + appName + CLASSPATH);
@@ -123,7 +127,9 @@ public class WebAppConfiguration implements Configuration {
             if (systemCP.contains(jfile.toURI().toURL()) ||
                 (jdir != null && systemCP.contains(jdir.toURI().toURL()))) {
                 //System.err.println("Not adding " + path + " to classpath for " + appName + ", already in system classpath");
-                continue;
+                // Ticket #957... don't know why...
+                if (!ctxPath.equals("/susimail"))
+                    continue;
             }
             System.err.println("Adding " + path + " to classpath for " + appName);
             buf.append(path);
diff --git a/apps/susimail/src/src/org/mortbay/servlet/MultiPartRequest.java b/apps/susimail/src/src/org/mortbay/servlet/MultiPartRequest.java
index 5491f6b96f..ee45d7685d 100644
--- a/apps/susimail/src/src/org/mortbay/servlet/MultiPartRequest.java
+++ b/apps/susimail/src/src/org/mortbay/servlet/MultiPartRequest.java
@@ -29,9 +29,7 @@ import javax.servlet.http.HttpServletRequest;
 
 //import org.apache.commons.logging.Log;
 //import org.mortbay.log.LogFactory;
-import org.eclipse.jetty.http.HttpHeaders;
 import org.eclipse.jetty.util.MultiMap;
-import org.eclipse.jetty.util.StringUtil;
 import org.mortbay.util.LineInput;
 
 /* ------------------------------------------------------------ */
@@ -78,7 +76,7 @@ public class MultiPartRequest
         throws IOException
     {
         _request=request;
-        String content_type = request.getHeader(HttpHeaders.CONTENT_TYPE);
+        String content_type = request.getHeader("Content-Type");
         if (!content_type.startsWith("multipart/form-data"))
             throw new IOException("Not multipart/form-data request");
 
@@ -94,7 +92,7 @@ public class MultiPartRequest
             value(content_type.substring(content_type.indexOf("boundary=")));
         
         //if(log.isDebugEnabled())log.debug("Boundary="+_boundary);
-        _byteBoundary= (_boundary+"--").getBytes(StringUtil.__ISO_8859_1);
+        _byteBoundary= (_boundary+"--").getBytes("ISO-8859-1");
         
         loadAllParts();
     }
-- 
GitLab