Openbravo Issue Tracking System - Openbravo ERP
View Issue Details
0042389Openbravo ERP04. Warehouse managementpublic2019-11-25 14:252020-04-06 15:51
francisco 
inigo_lerga 
normalminoralways
closedfixed 
5
 
3.0PR20Q2 
dmiguelez
Core
No
0042389: Error processing inventory with reservation
When you have a reservation in a product and try to to process a physical inventory with Quantity count inferior to the Reserved QTY
it throw the following error:
Error:
org.hibernate.exception.GenericJDBCException: could not execute statement
Tested in retail_modules_pgsql_pi:
Go to Sales Order window and complete an order with:
Cerveza Ale 0.5L
Line: 5 units
Click on button Manage Reservation

Go to Physical Inventory Window and create a new inventory
Line:
Cerveza Ale 0.5L
Quantity count less than you reserved before (1)
Click on button Process Inventory Count

You ger the error
Error:
org.hibernate.exception.GenericJDBCException: could not execute statement


This is the log:

2019-11-25 13:05:21,465 [http-3] ERROR org.openbravo.materialmgmt.InventoryCountProcess - Exception processing physical inventory
javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not execute statement
    at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.query.internal.AbstractProducedQuery.executeUpdate(AbstractProducedQuery.java:1617) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.openbravo.materialmgmt.InventoryCountProcess.processInventory(InventoryCountProcess.java:242) ~[classes/:?]
    at org.openbravo.materialmgmt.InventoryCountProcess.processInventory(InventoryCountProcess.java:145) ~[classes/:?]
    at org.openbravo.materialmgmt.InventoryCountProcess.processInventory(InventoryCountProcess.java:140) ~[classes/:?]
    at org.openbravo.materialmgmt.InventoryCountProcess.execute(InventoryCountProcess.java:99) [classes/:?]
    at org.openbravo.scheduling.ProcessRunner.execute(ProcessRunner.java:84) [classes/:?]
    at org.openbravo.erpWindows.PhysicalInventory.Header.doPost(Header.java:330) [classes/:?]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) [tomcat8-servlet-api-8.5.39.jar:?]
    at org.openbravo.base.HttpBaseServlet.serviceInitialized(HttpBaseServlet.java:200) [openbravo-core.jar:?]
    at org.openbravo.base.secureApp.HttpSecureAppServlet.service(HttpSecureAppServlet.java:459) [classes/:?]
    at org.openbravo.erpWindows.PhysicalInventory.Header.service(Header.java:112) [classes/:?]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) [tomcat8-servlet-api-8.5.39.jar:?]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) [tomcat8-websocket-8.5.39.jar:8.5.39]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.openbravo.client.analytics.OBSpringSecurityContextRequestFilter$1.doAction(OBSpringSecurityContextRequestFilter.java:75) [classes/:?]
    at org.openbravo.dal.core.ThreadHandler.run(ThreadHandler.java:47) [classes/:?]
    at org.openbravo.client.analytics.OBSpringSecurityContextRequestFilter.doFilter(OBSpringSecurityContextRequestFilter.java:83) [classes/:?]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.openbravo.utils.SessionExpirationFilter.doFilter(SessionExpirationFilter.java:66) [openbravo-core.jar:?]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.openbravo.utils.CharsetFilter.doFilter(CharsetFilter.java:38) [openbravo-core.jar:?]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.openbravo.client.kernel.KernelFilter$1.doAction(KernelFilter.java:65) [classes/:?]
    at org.openbravo.dal.core.ThreadHandler.run(ThreadHandler.java:47) [classes/:?]
    at org.openbravo.client.kernel.KernelFilter.doFilter(KernelFilter.java:74) [classes/:?]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.openbravo.dal.core.DalRequestFilter$1.doAction(DalRequestFilter.java:96) [classes/:?]
    at org.openbravo.dal.core.ThreadHandler.run(ThreadHandler.java:47) [classes/:?]
    at org.openbravo.dal.core.DalRequestFilter.doFilter(DalRequestFilter.java:118) [classes/:?]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71) [log4j-web-2.11.1.jar:2.11.1]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [tomcat8-catalina-8.5.39.jar:8.5.39]
    at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:476) [tomcat8-coyote-8.5.39.jar:8.5.39]
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat8-coyote-8.5.39.jar:8.5.39]
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806) [tomcat8-coyote-8.5.39.jar:8.5.39]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498) [tomcat8-coyote-8.5.39.jar:8.5.39]
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat8-coyote-8.5.39.jar:8.5.39]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat8-util-8.5.39.jar:8.5.39]
    at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: org.hibernate.exception.GenericJDBCException: could not execute statement
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:178) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.hql.internal.ast.exec.BasicExecutor.doExecute(BasicExecutor.java:100) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.hql.internal.ast.exec.BasicExecutor.execute(BasicExecutor.java:59) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:454) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.engine.query.spi.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:382) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.internal.SessionImpl.executeUpdate(SessionImpl.java:1562) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.query.internal.AbstractProducedQuery.doExecuteUpdate(AbstractProducedQuery.java:1626) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.query.internal.AbstractProducedQuery.executeUpdate(AbstractProducedQuery.java:1608) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    ... 56 more
Caused by: org.postgresql.util.PSQLException: ERROR: @CannotTakeOutReservedStock@ @of@ @Product@: ES/0001cd , @AttributeSetInstance@: -, @UOM@: Ud @And@ @StorageBin@: Rn-0-0-0
  Where: PL/pgSQL function m_transaction_trg2() line 93 at RAISE
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2433) ~[postgresql-42.2.2.jre7.jar:42.2.2.jre7]
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2178) ~[postgresql-42.2.2.jre7.jar:42.2.2.jre7]
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:306) ~[postgresql-42.2.2.jre7.jar:42.2.2.jre7]
    at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:441) ~[postgresql-42.2.2.jre7.jar:42.2.2.jre7]
    at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:365) ~[postgresql-42.2.2.jre7.jar:42.2.2.jre7]
    at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:155) ~[postgresql-42.2.2.jre7.jar:42.2.2.jre7]
    at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:132) ~[postgresql-42.2.2.jre7.jar:42.2.2.jre7]
    at jdk.internal.reflect.GeneratedMethodAccessor336.invoke(Unknown Source) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
    at org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:138) ~[tomcat-jdbc.jar:?]
    at com.sun.proxy.$Proxy1127.executeUpdate(Unknown Source) ~[?:?]
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:175) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.hql.internal.ast.exec.BasicExecutor.doExecute(BasicExecutor.java:100) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.hql.internal.ast.exec.BasicExecutor.execute(BasicExecutor.java:59) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:454) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.engine.query.spi.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:382) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.internal.SessionImpl.executeUpdate(SessionImpl.java:1562) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.query.internal.AbstractProducedQuery.doExecuteUpdate(AbstractProducedQuery.java:1626) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
    at org.hibernate.query.internal.AbstractProducedQuery.executeUpdate(AbstractProducedQuery.java:1608) ~[hibernate-core-5.4.2.Final.jar:5.4.2.Final]
No tags attached.
Issue History
2019-11-25 14:25franciscoNew Issue
2019-11-25 14:25franciscoAssigned To => Triage Finance
2019-11-25 14:25franciscoModules => Core
2019-11-25 14:25franciscoResolution time => 1576450800
2019-11-25 14:25franciscoTriggers an Emergency Pack => No
2019-11-25 14:27PracticsIssue Monitored: Practics
2019-11-27 09:49franciscoPriorityhigh => normal
2019-11-27 09:49franciscoSeveritymajor => minor
2019-11-27 09:51franciscoResolution time1576450800 =>
2019-12-26 12:37inigo_lergaAssigned ToTriage Finance => inigo_lerga
2019-12-26 12:37inigo_lergaStatusnew => scheduled
2020-01-02 09:52inigo_lergaNote Added: 0116597
2020-03-20 13:29hgbotCheckin
2020-03-20 13:29hgbotNote Added: 0118714
2020-03-20 13:29hgbotStatusscheduled => resolved
2020-03-20 13:29hgbotResolutionopen => fixed
2020-03-20 13:29hgbotFixed in SCM revision => http://code.openbravo.com/erp/devel/pi/rev/2009bff0c56b7a48a959549e7cd9d825dda93c3e [^]
2020-03-20 13:30dmiguelezReview Assigned To => dmiguelez
2020-03-20 13:30dmiguelezNote Added: 0118715
2020-03-20 13:30dmiguelezStatusresolved => closed
2020-03-20 13:30dmiguelezFixed in Version => 3.0PR20Q2
2020-03-23 12:23hgbotCheckin
2020-03-23 12:23hgbotNote Added: 0118754
2020-04-06 11:53hgbotCheckin
2020-04-06 11:53hgbotNote Added: 0118973
2020-04-06 11:53hgbotStatusclosed => resolved
2020-04-06 11:53hgbotFixed in SCM revisionhttp://code.openbravo.com/erp/devel/pi/rev/2009bff0c56b7a48a959549e7cd9d825dda93c3e [^] => http://code.openbravo.com/erp/devel/pi/rev/508345e2116418669408647db90b35c133b1392c [^]
2020-04-06 15:51jarmendarizNote Added: 0118996
2020-04-06 15:51jarmendarizStatusresolved => closed

Notes
(0116597)
inigo_lerga   
2020-01-02 09:52   
Test Plan Mantis:
As the F&B International Group Admin role:
    - Enter the Sales Order window.
    - Create a new record with any business
      partner. Create a new line of Cerveza
      Ale 0.5L with 5 units in the Ordered
      Quantity field.
    - Save the record and press Book button.
    - Select the line of Cerveza Ale 0.5L
      and click or button Manage Reservation.
      Press the Done button in the popup window.
    - Go to Physical Inventory window. Create
      a new line of Cerveza Ale 0.5L with 1
      unit in the Quantity field.
    - Press the Process Inventory Count button.
    #Apreciate the error message is now the
    proper one#
(0118714)
hgbot   
2020-03-20 13:29   
Repository: erp/devel/pi
Changeset: 2009bff0c56b7a48a959549e7cd9d825dda93c3e
Author: David Miguelez <david.miguelez <at> openbravo.com>
Date: Fri Mar 20 13:28:54 2020 +0100
URL: http://code.openbravo.com/erp/devel/pi/rev/2009bff0c56b7a48a959549e7cd9d825dda93c3e [^]

Fixes ISSUE-42389. Moved try condition of try-catch block to encapsulate the
queryInsert.execute statement and provide the proper message to the user
when the process fails.

---
M src/org/openbravo/materialmgmt/InventoryCountProcess.java
---
(0118715)
dmiguelez   
2020-03-20 13:30   
Code Review + Testing Ok
(0118754)
hgbot   
2020-03-23 12:23   
Repository: erp/pmods/org.openbravo.warehouse.advancedwarehouseoperations
Changeset: 42e055fd911c875d16ed4182cd72d0bf51ccc1c2
Author: Víctor Martínez Romanos <victor.martinez <at> openbravo.com>
Date: Mon Mar 23 11:34:51 2020 +0100
URL: http://code.openbravo.com/erp/pmods/org.openbravo.warehouse.advancedwarehouseoperations/rev/42e055fd911c875d16ed4182cd72d0bf51ccc1c2 [^]

Related to BUG-42389: Adapted AWO JUnit test
The test was expecting a PersistenceException, however the core's code now launches an OBException.
The test has been adapted to work with Exception class that properly shows the expected message

---
M src-test/org/openbravo/warehouse/advancedwarehouseoperations/test/AWOb_BasicFunctionalFlowsWithAWOPreference.java
---
(0118973)
hgbot   
2020-04-06 11:53   
Repository: erp/devel/pi
Changeset: 508345e2116418669408647db90b35c133b1392c
Author: David Miguelez <david.miguelez <at> openbravo.com>
Date: Fri Mar 20 13:28:54 2020 +0100
URL: http://code.openbravo.com/erp/devel/pi/rev/508345e2116418669408647db90b35c133b1392c [^]

Fixes ISSUE-42389. Moved try condition of try-catch block to encapsulate the
queryInsert.execute statement and provide the proper message to the user
when the process fails.

---
M src/org/openbravo/materialmgmt/InventoryCountProcess.java
---
(0118996)
jarmendariz   
2020-04-06 15:51   
closed: wrongly reopened