details:   https://code.openbravo.com/erp/devel/pi/rev/5318eb8145c5
changeset: 35454:5318eb8145c5
user:      Asier Lostalé <asier.lostale <at> openbravo.com>
date:      Fri Feb 15 09:11:12 2019 +0100
summary:   fixed bug 40211: Servlets randomly become unavailable on 1st request

  Implemented temporary workaround until Weld gets updated. Now all Servlets 
that
  do not specify any startup order, are eagerly loaded on server startup. This 
is
  done by a single thread preventing in this way race conditions in Wel's buggy
  code.

  It's possible to prevent concrete Servlets to be load on startup by setting to
  a negative number their load on startup field.

diffstat:

 src-wad/src/org/openbravo/wad/Wad.java |  9 ++++++---
 src-wad/src/org/openbravo/wad/web.xml  |  3 ++-
 2 files changed, 8 insertions(+), 4 deletions(-)

diffs (49 lines):

diff -r ee73c7e96e03 -r 5318eb8145c5 src-wad/src/org/openbravo/wad/Wad.java
--- a/src-wad/src/org/openbravo/wad/Wad.java    Fri Feb 15 13:34:25 2019 +0100
+++ b/src-wad/src/org/openbravo/wad/Wad.java    Fri Feb 15 09:11:12 2019 +0100
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2001-2018 Openbravo SLU 
+ * All portions are Copyright (C) 2001-2019 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -764,11 +764,14 @@
       WadData[][] servletParams = null;
       if (servlets != null && servlets.length > 0) {
         servletParams = new WadData[servlets.length][];
+        String loadOnStartup;
         for (int i = 0; i < servlets.length; i++) {
           if (servlets[i].loadonstartup != null && 
!servlets[i].loadonstartup.equals("")) {
-            servlets[i].loadonstartup = "<load-on-startup>" + 
servlets[i].loadonstartup
-                + "</load-on-startup>";
+            loadOnStartup = servlets[i].loadonstartup;
+          } else {
+            loadOnStartup = "9999";
           }
+          servlets[i].loadonstartup = "<load-on-startup>" + loadOnStartup + 
"</load-on-startup>";
           servletParams[i] = WadData.selectParams(pool, "S", 
servlets[i].classname, servlets[i].id);
         }
       } else {
diff -r ee73c7e96e03 -r 5318eb8145c5 src-wad/src/org/openbravo/wad/web.xml
--- a/src-wad/src/org/openbravo/wad/web.xml     Fri Feb 15 13:34:25 2019 +0100
+++ b/src-wad/src/org/openbravo/wad/web.xml     Fri Feb 15 09:11:12 2019 +0100
@@ -12,7 +12,7 @@
     * under the License. 
     * The Original Code is Openbravo ERP. 
     * The Initial Developer of the Original Code is Openbravo SLU
-    * All portions are Copyright (C) 2001-2018 Openbravo SLU 
+    * All portions are Copyright (C) 2001-2019 Openbravo SLU 
     * All Rights Reserved. 
     * Contributor(s):    ______________________________________.
     ************************************************************************
@@ -69,6 +69,7 @@
       <servlet-class>
         <FIELD_TMP id="fieldTabClassName">codigo</FIELD_TMP>
       </servlet-class>
+      <load-on-startup>9999</load-on-startup>
     </servlet>
   </FIELDS_TMP>
 


_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to