]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/Gigi.java
add: Init two db-static initializers non-lazily
[gigi.git] / src / org / cacert / gigi / Gigi.java
index 09daf6df3ccb4c3b4d9142075ca36e9a677250b5..99b136b8fa089d410b4c3695e4aac7afe01d95ac 100644 (file)
@@ -21,6 +21,8 @@ import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
 import org.cacert.gigi.database.DatabaseConnection;
+import org.cacert.gigi.dbObjects.CACertificate;
+import org.cacert.gigi.dbObjects.CertificateProfile;
 import org.cacert.gigi.dbObjects.DomainPingConfiguration;
 import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.localisation.Language;
@@ -30,6 +32,7 @@ import org.cacert.gigi.output.SimpleMenuItem;
 import org.cacert.gigi.output.template.Form.CSRFException;
 import org.cacert.gigi.output.template.Outputable;
 import org.cacert.gigi.output.template.Template;
+import org.cacert.gigi.pages.HandlesMixedRequest;
 import org.cacert.gigi.pages.LoginPage;
 import org.cacert.gigi.pages.LogoutPage;
 import org.cacert.gigi.pages.MainPage;
@@ -226,6 +229,10 @@ public class Gigi extends HttpServlet {
             super.init();
             return;
         }
+        // ensure those static initializers are finished
+        CACertificate.getById(1);
+        CertificateProfile.getById(1);
+
         MenuBuilder mb = new MenuBuilder();
         rootMenu = mb.generateMenu();
         pages = mb.getPages();
@@ -247,24 +254,18 @@ public class Gigi extends HttpServlet {
             return page;
         }
         int idx = pathInfo.lastIndexOf('/');
-        pathInfo = pathInfo.substring(0, idx);
 
-        page = pages.get(pathInfo + "/*");
+        page = pages.get(pathInfo.substring(0, idx) + "/*");
         if (page != null) {
             return page;
         }
 
-        idx = pathInfo.lastIndexOf('/');
-        if (idx == -1) {
+        int lIdx = pathInfo.lastIndexOf('/', idx);
+        if (lIdx == -1) {
             return null;
         }
-        pathInfo = pathInfo.substring(0, idx);
-
-        page = pages.get(pathInfo + "/*");
-        if (page != null) {
-            return page;
-        }
-        return null;
+        page = pages.get(pathInfo.substring(0, lIdx) + "/" + pathInfo.substring(idx));
+        return page;
 
     }
 
@@ -343,7 +344,7 @@ public class Gigi extends HttpServlet {
                 public void output(PrintWriter out, Language l, Map<String, Object> vars) {
                     try {
                         if (req.getMethod().equals("POST")) {
-                            if (req.getQueryString() != null) {
+                            if (req.getQueryString() != null && !(p instanceof HandlesMixedRequest)) {
                                 return;
                             }
                             p.doPost(req, resp);