Bug fixed reported by Zapata that config.docRoot is null if first calling OpenMir...
[mir.git] / source / OpenMir.java
index ca0377c..066e183 100755 (executable)
@@ -44,12 +44,12 @@ import mir.misc.HTMLTemplateProcessor;
 import mir.misc.StringUtil;
 import mir.servlet.AbstractServlet;
 import mir.servlet.ServletModuleDispatch;
-import mir.servlet.ServletModuleExc;
 import mir.servlet.ServletModuleUserExc;
-import mir.servlet.ServletModuleFailure;
 import mir.util.ExceptionFunctions;
-
 import mircoders.servlet.ServletModuleOpenIndy;
+
+import org.apache.struts.util.MessageResources;
+
 import freemarker.template.SimpleHash;
 import freemarker.template.SimpleScalar;
 
@@ -57,7 +57,7 @@ import freemarker.template.SimpleScalar;
  *  OpenMir.java - main servlet for open posting and comment feature to articles
  *
  *  @author RK 1999-2001, the mir-coders group
- *  @version $Id: OpenMir.java,v 1.22 2003/03/06 05:40:38 zapata Exp $
+ *  @version $Id: OpenMir.java,v 1.28 2003/03/15 02:07:35 idfx Exp $
  *
  */
 
@@ -66,11 +66,15 @@ public class OpenMir extends AbstractServlet {
   private static String lang;
   public HttpSession session;
 
-  public void doGet(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletException, IOException {
-    doPost(aRequest,aResponse);
-  }
 
-  public void doPost(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletException, IOException {
+
+  public void process(HttpServletRequest aRequest, HttpServletResponse aResponse) 
+       throws ServletException, IOException {
+               if ((configuration.getString("RootUri") == null) ||
+                       configuration.getString("RootUri").equals("")) {
+                 configuration.setProperty("RootUri", aRequest.getContextPath());
+               }
+
     long startTime = System.currentTimeMillis();
     long sessionConnectTime=0;
 
@@ -112,32 +116,35 @@ public class OpenMir extends AbstractServlet {
   }
 
   private void handleUserError(HttpServletRequest aRequest, HttpServletResponse aResponse,
-                               PrintWriter out, Throwable anException) {
+                               PrintWriter out, ServletModuleUserExc anException) {
     try {
       logger.info("user error: " + anException.getMessage());
       SimpleHash modelRoot = new SimpleHash();
-      modelRoot.put("errorstring", new SimpleScalar(anException.getMessage()));
+      MessageResources messages = MessageResources.getMessageResources("bundles.open");
+      modelRoot.put("errorstring",
+          new SimpleScalar(
+              messages.getMessage(getLocale(aRequest), anException.getMessage(), anException.getParameters())
+          ));
       modelRoot.put("date", new SimpleScalar(StringUtil.date2readableDateTime(new GregorianCalendar())));
-      HTMLTemplateProcessor.process(aResponse,MirPropertiesConfiguration.instance().getString("Mir.UserErrorTemplate"),
-                                    modelRoot, out, aRequest.getLocale() );
+      HTMLTemplateProcessor.process(aResponse,MirPropertiesConfiguration.instance().getString("ServletModule.OpenIndy.UserErrorTemplate"),
+                                    modelRoot, out, getLocale(aRequest));
       out.close();
     }
     catch (Exception e) {
       logger.error("Error in UserErrorTemplate");
     }
-
   }
 
   private void handleError(HttpServletRequest aRequest, HttpServletResponse aResponse,PrintWriter out, Throwable anException) {
-
     try {
       logger.error("error: " + anException);
       SimpleHash modelRoot = new SimpleHash();
+
       modelRoot.put("errorstring", new SimpleScalar(anException.getMessage()));
       modelRoot.put("date", new SimpleScalar(StringUtil.date2readableDateTime(
                                                new GregorianCalendar())));
-      HTMLTemplateProcessor.process(aResponse,MirPropertiesConfiguration.instance().getString("Mir.ErrorTemplate"),
-                                    modelRoot,out, aRequest.getLocale());
+      HTMLTemplateProcessor.process(aResponse,MirPropertiesConfiguration.instance().getString("ServletModule.OpenIndy.ErrorTemplate"),
+                                    modelRoot,out, getLocale(aRequest));
       out.close();
     }
     catch (Exception e) {