Project:
View Revisions: Issue #38061 | [ Back to Issue ] | ||
Summary | 0038061: Selector filter expression with OB.isSalesTransaction() doesn't work when called from a Process Definition | ||
Revision | 2018-03-06 17:54 by vmromanos | ||
Steps To Reproduce | In a recent PI. As F&B Admin: Go to Referenced Inventory Type window and create any record for US org Go to Referenced Inventory window and create any record for West org linked to previous Referenced Inventory Type Press Box button. In the process definition, press the storage bin selector's magnifying glass button. Check the openbravo.log for the exception |
||
Revision | 2018-03-06 17:54 by vmromanos | ||
Description | The "On Hand Locator" reference has the following filter expression: "((" + OB.isSalesTransaction() + " [...] When the selector is inside a normal tab it's working fine, however when the selector is included into a Process Definition the following error is printed into the log: 1823852 [http-apr-8080-exec-10] ERROR org.openbravo.userinterface.selector.SelectorDefaultFilterActionHandler - Error generating Default Filter action result: id to load is required for loading java.lang.IllegalArgumentException: id to load is required for loading at org.hibernate.event.LoadEvent.<init>(LoadEvent.java:89) at org.hibernate.event.LoadEvent.<init>(LoadEvent.java:61) at org.hibernate.impl.SessionImpl.get(SessionImpl.java:1002) at org.openbravo.dal.core.SessionHandler.find(SessionHandler.java:534) at org.openbravo.dal.core.SessionHandler.find(SessionHandler.java:500) at org.openbravo.dal.service.OBDal.get(OBDal.java:353) at org.openbravo.client.application.window.ApplicationDictionaryCachedStructures.getWindow(ApplicationDictionaryCachedStructures.java:170) at org.openbravo.client.application.window.ApplicationDictionaryCachedStructures$Proxy$_$$_WeldClientProxy.getWindow(ApplicationDictionaryCachedStructures$Proxy$_$$_WeldClientProxy.java) at org.openbravo.client.application.OBBindings.isSalesTransaction(OBBindings.java:142) at jdk.nashorn.internal.scripts.Script$5$\^eval\_.:program(<eval>:1) at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:637) at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494) at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:449) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:406) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:402) at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:155) at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233) at org.openbravo.base.expression.OBScriptEngine.eval(OBScriptEngine.java:57) at org.openbravo.userinterface.selector.SelectorDefaultFilterActionHandler.execute(SelectorDefaultFilterActionHandler.java:152) at org.openbravo.client.kernel.BaseActionHandler.execute(BaseActionHandler.java:73) at org.openbravo.userinterface.selector.SelectorDefaultFilterActionHandler$Proxy$_$$_WeldClientProxy.execute(SelectorDefaultFilterActionHandler$Proxy$_$$_WeldClientProxy.java) at org.openbravo.client.kernel.KernelServlet.processActionRequest(KernelServlet.java:314) at org.openbravo.client.kernel.KernelServlet.doGet(KernelServlet.java:206) at org.openbravo.client.kernel.KernelServlet.doPost(KernelServlet.java:287) at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) at org.openbravo.base.HttpBaseServlet.serviceInitialized(HttpBaseServlet.java:221) at org.openbravo.base.secureApp.HttpSecureAppServlet.service(HttpSecureAppServlet.java:462) at org.openbravo.client.kernel.BaseKernelServlet.callServiceInSuper(BaseKernelServlet.java:87) at org.openbravo.client.kernel.BaseKernelServlet.service(BaseKernelServlet.java:58) at org.openbravo.client.kernel.KernelServlet.service(KernelServlet.java:168) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openbravo.utils.SessionExpirationFilter.doFilter(SessionExpirationFilter.java:66) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openbravo.utils.CharsetFilter.doFilter(CharsetFilter.java:35) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openbravo.client.kernel.KernelFilter$1.doAction(KernelFilter.java:62) at org.openbravo.dal.core.ThreadHandler.run(ThreadHandler.java:46) at org.openbravo.client.kernel.KernelFilter.doFilter(KernelFilter.java:71) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openbravo.dal.core.DalRequestFilter$1.doAction(DalRequestFilter.java:83) at org.openbravo.dal.core.ThreadHandler.run(ThreadHandler.java:46) at org.openbravo.dal.core.DalRequestFilter.doFilter(DalRequestFilter.java:105) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2522) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2511) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) After debugging I have realized the problem is OBBindings.getWindowId() method, which returns NULL when the selector is defined into a Process Definition. Later on the OBBindings.isSalesTransaction() method throws the NPE because it tries to recover a window with NULL ad_window_id. |
||
Revision | 2018-03-06 17:52 by vmromanos | ||
Steps To Reproduce | In a recent PI. As F&B Admin: Go to Referenced Inventory Type window and create any record for US org Go to Referenced Inventory window and create any record for West org linked to previous Referenced Inventory Type Press Box button. In the process definition, press storage bin selector's magnifying glass button. Check the openbravo.log for the exception |
||
Revision | 2018-03-06 17:52 by vmromanos | ||
Description | The "On Hand Locator" reference has the following filter expression: "((" + OB.isSalesTransaction() + " [...] When the selector is inside a normal tab, it's working fine, however when the selector is included into a Process Definition the following error is printed into the log: 1823852 [http-apr-8080-exec-10] ERROR org.openbravo.userinterface.selector.SelectorDefaultFilterActionHandler - Error generating Default Filter action result: id to load is required for loading java.lang.IllegalArgumentException: id to load is required for loading at org.hibernate.event.LoadEvent.<init>(LoadEvent.java:89) at org.hibernate.event.LoadEvent.<init>(LoadEvent.java:61) at org.hibernate.impl.SessionImpl.get(SessionImpl.java:1002) at org.openbravo.dal.core.SessionHandler.find(SessionHandler.java:534) at org.openbravo.dal.core.SessionHandler.find(SessionHandler.java:500) at org.openbravo.dal.service.OBDal.get(OBDal.java:353) at org.openbravo.client.application.window.ApplicationDictionaryCachedStructures.getWindow(ApplicationDictionaryCachedStructures.java:170) at org.openbravo.client.application.window.ApplicationDictionaryCachedStructures$Proxy$_$$_WeldClientProxy.getWindow(ApplicationDictionaryCachedStructures$Proxy$_$$_WeldClientProxy.java) at org.openbravo.client.application.OBBindings.isSalesTransaction(OBBindings.java:142) at jdk.nashorn.internal.scripts.Script$5$\^eval\_.:program(<eval>:1) at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:637) at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494) at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:449) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:406) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:402) at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:155) at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233) at org.openbravo.base.expression.OBScriptEngine.eval(OBScriptEngine.java:57) at org.openbravo.userinterface.selector.SelectorDefaultFilterActionHandler.execute(SelectorDefaultFilterActionHandler.java:152) at org.openbravo.client.kernel.BaseActionHandler.execute(BaseActionHandler.java:73) at org.openbravo.userinterface.selector.SelectorDefaultFilterActionHandler$Proxy$_$$_WeldClientProxy.execute(SelectorDefaultFilterActionHandler$Proxy$_$$_WeldClientProxy.java) at org.openbravo.client.kernel.KernelServlet.processActionRequest(KernelServlet.java:314) at org.openbravo.client.kernel.KernelServlet.doGet(KernelServlet.java:206) at org.openbravo.client.kernel.KernelServlet.doPost(KernelServlet.java:287) at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) at org.openbravo.base.HttpBaseServlet.serviceInitialized(HttpBaseServlet.java:221) at org.openbravo.base.secureApp.HttpSecureAppServlet.service(HttpSecureAppServlet.java:462) at org.openbravo.client.kernel.BaseKernelServlet.callServiceInSuper(BaseKernelServlet.java:87) at org.openbravo.client.kernel.BaseKernelServlet.service(BaseKernelServlet.java:58) at org.openbravo.client.kernel.KernelServlet.service(KernelServlet.java:168) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openbravo.utils.SessionExpirationFilter.doFilter(SessionExpirationFilter.java:66) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openbravo.utils.CharsetFilter.doFilter(CharsetFilter.java:35) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openbravo.client.kernel.KernelFilter$1.doAction(KernelFilter.java:62) at org.openbravo.dal.core.ThreadHandler.run(ThreadHandler.java:46) at org.openbravo.client.kernel.KernelFilter.doFilter(KernelFilter.java:71) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.openbravo.dal.core.DalRequestFilter$1.doAction(DalRequestFilter.java:83) at org.openbravo.dal.core.ThreadHandler.run(ThreadHandler.java:46) at org.openbravo.dal.core.DalRequestFilter.doFilter(DalRequestFilter.java:105) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2522) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2511) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) After debugging I have realized the problem is OBBindings.getWindowId() method, which returns NULL when the selector is defined into a Process Definition. Later on the OBBindings.isSalesTransaction() method throws the NPE because it tries to recover a window with NULL ad_window_id. |
Copyright © 2000 - 2009 MantisBT Group |