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