Anonymous | Login
Project:
RSS
  
News | My View | View Issues | Roadmap | Summary

View Issue DetailsJump to Notes ] Issue History ] Print ]
ID
0050567
TypeCategorySeverityReproducibilityDate SubmittedLast Update
defect[Modules] Advanced Warehouse Operationscriticalalways2022-10-18 11:352022-10-18 15:24
ReportervmromanosView Statuspublic 
Assigned Tovmromanos 
PriorityimmediateResolutionfixedFixed in Version
StatusclosedFix in branchFixed in SCM revision
ProjectionnoneETAnoneTarget Version
OSAnyDatabaseAnyJava version
OS VersionDatabase versionAnt version
Product VersionSCM revision 
Regression date2022-09-17
Regression introduced by commithttps://gitlab.com/openbravo/product/pmods/org.openbravo.warehouse.advancedwarehouseoperations/-/commit/a93c6528a0132864982fbfc7347556e80198fe0d#725d82d52cf130dd9ad73f6ac6f7d867e6f94dd6_77_77 [^]
Regression levelPre packaging ( pi )
Review Assigned To
Regression introduced in release
Summary

0050567: Inventory Count stopped working when routing is automatic confirmation

DescriptionA NullPointerException is thrown when confirming a shared inventory count and the routing is configured as automatic confirmation:

2022-10-17 18:12:28,813 [http-9] ERROR org.openbravo.warehouse.advancedwarehouseoperations.mobile.processors.InventoryCountConfirmProcessor - java.lang.NullPointerException
org.openbravo.base.exception.OBException: java.lang.NullPointerException
at org.openbravo.warehouse.advancedwarehouseoperations.utils.inventorycount.PhysicalInventoryProposalLinesCreator.createAndProcessPhysicalInventoryProposalByMergingUsersCountsAndGenerateTasks(PhysicalInventoryProposalLinesCreator.java:55) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.utils.inventorycount.InventoryCount_EndCount.postConfirm(InventoryCount_EndCount.java:41) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.utils.inventorycount.InventoryCountAction.confirm(InventoryCountAction.java:65) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.utils.inventorycount.InventoryCountLifeCycleManager.executeInventoryCountActionHook(InventoryCountLifeCycleManager.java:91) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.utils.inventorycount.InventoryCountLifeCycleManager.doAction(InventoryCountLifeCycleManager.java:64) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.mobile.processors.InventoryCountConfirmProcessor.exec(InventoryCountConfirmProcessor.java:39) [classes/:?]
at org.openbravo.mobile.core.process.JSONProcessSimple.exec(JSONProcessSimple.java:47) [classes/:?]
at org.openbravo.mobile.core.process.SecuredJSONProcess.secureExec(SecuredJSONProcess.java:63) [classes/:?]
at org.openbravo.mobile.core.process.MobileServiceProcessor.execProcess(MobileServiceProcessor.java:121) [classes/:?]
at org.openbravo.mobile.core.process.MobileServiceProcessor.execServiceName(MobileServiceProcessor.java:96) [classes/:?]
at org.openbravo.mobile.core.process.MobileService.doGetOrPost(MobileService.java:194) [classes/:?]
at org.openbravo.mobile.core.process.MobileService.doPost(MobileService.java:73) [classes/:?]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) [tomcat8-servlet-api.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.client.kernel.BaseKernelServlet.callServiceInSuper(BaseKernelServlet.java:89) [classes/:?]
at org.openbravo.mobile.core.process.WebServiceAuthenticatedServlet.service(WebServiceAuthenticatedServlet.java:67) [classes/:?]
at org.openbravo.mobile.core.process.MobileService.service(MobileService.java:132) [classes/:?]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) [tomcat8-servlet-api.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.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.17.1.jar:2.17.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:829) [?:?]
Caused by: java.lang.NullPointerException
at org.openbravo.warehouse.advancedwarehouseoperations.centralbroker.InventoryCountGenerator.createPhysicalInventoryHeaderFromTask(InventoryCountGenerator.java:77) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.centralbroker.InventoryCountGenerator.createPhysicalInventoryFromTask(InventoryCountGenerator.java:58) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.centralbroker.InventoryCountGenerator.createTransactionDocHeader(InventoryCountGenerator.java:51) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.centralbroker.InventoryCountGenerator.createTransactionDocHeader(InventoryCountGenerator.java:36) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.centralbroker.TransactionDocGenerator.createAndSetTransactionDocHeader(TransactionDocGenerator.java:74) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.centralbroker.IndividualTaskConfirmator.processIndividualTask(IndividualTaskConfirmator.java:40) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.centralbroker.CentralBroker.processIndividualTask(CentralBroker.java:213) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.task.AutoConfirmatorIndividualTask.autoConfirmNonBehaveAsGroupTaskBasedOnRoutingConfiguration(AutoConfirmatorIndividualTask.java:47) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.task.AutoConfirmatorIndividualTask.run(AutoConfirmatorIndividualTask.java:33) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.task.TasksGenerator.createTasksAndRunsPostCreateTaskHookForEachTask(TasksGenerator.java:108) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.task.TasksGenerator.run(TasksGenerator.java:71) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.centralbroker.InventoryTransactionTypeAlgorithm.executeAlgorithm(InventoryTransactionTypeAlgorithm.java:254) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.centralbroker.BatchOfTasksGenerator.createBatchOfTasksUsingItt(BatchOfTasksGenerator.java:199) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.centralbroker.BatchOfTasksGenerator.createBatchOfTasksIfIttAlgorithmInstanceFound(BatchOfTasksGenerator.java:151) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.centralbroker.BatchOfTasksGenerator.run(BatchOfTasksGenerator.java:117) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.centralbroker.CentralBroker.doTheStuff(CentralBroker.java:159) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.centralbroker.CentralBroker.doTheStuff(CentralBroker.java:109) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.utils.InventoryProposalUtils.completeInventoryProposalAndGenerateTasks(InventoryProposalUtils.java:205) ~[classes/:?]
at org.openbravo.warehouse.advancedwarehouseoperations.utils.inventorycount.PhysicalInventoryProposalLinesCreator.createAndProcessPhysicalInventoryProposalByMergingUsersCountsAndGenerateTasks(PhysicalInventoryProposalLinesCreator.java:52) ~[classes/:?]
... 58 more


The regression was introduced by the Inventory Reason Project
Steps To ReproduceLogin into AWO-QA admin in backend

Go to Warehouse Definition, and select US West Coast.
In the Routing tab, search for "STGn-STGn/AC" (STGn to STGn (PIi) AutoConf), and change Confirmation to Automatic

Create a new Inventory Count:
  Org: US West Coast
  Warehouse: US West Coast
  Shared Count = Y

Press Assign button and select AWOQAAdmin, set Start Count Now = Y and press Done

Go to Users | Shared Counts tab
Create a new record for any product in Food001 bin, like for example Orange.
Set any quantity different from the book quantity, for example 100.

Press End Count. An exception is raised [java.lang.NullPointerException]
TagsNo tags attached.
Attached Files

- Relationships Relation Graph ] Dependency Graph ]
caused by feature request 0050091 closedTriage Omni WMS Retail Modules Makes possible to add inventory reasons predefined by users in the Back office and use them in the front end 

-  Notes
(0142224)
hgbot (developer)
2022-10-18 11:45

Merge Request created: https://gitlab.com/openbravo/product/pmods/org.openbravo.warehouse.advancedwarehouseoperations/-/merge_requests/71 [^]
(0142225)
vmromanos (manager)
2022-10-18 11:57

Test plan:

Login into AWO-QA admin in backend

Go to Warehouse Definition, and select US West Coast.
In the Routing tab, search for "STGn-STGn/AC" (STGn to STGn (PIi) AutoConf), and change Confirmation to Automatic

Create a new Inventory Count:
  Org: US West Coast
  Warehouse: US West Coast
  Shared Count = Y

Press Assign button and select AWOQAAdmin, set Start Count Now = Y and press Done

Go to Users | Shared Counts tab
Create a new record for any product in Food001 bin, like for example Orange.
Set any quantity different from the book quantity, for example 100.

Press End Count. The process is completed successfully.
(0142233)
hgbot (developer)
2022-10-18 15:24

Directly closing issue as related merge request is already approved.

Repository: https://gitlab.com/openbravo/product/pmods/org.openbravo.warehouse.advancedwarehouseoperations [^]
Changeset: c168208a58dfceec1d3a2a4a58c01e408a47083f
Author: Víctor Martínez Romanos <victor.martinez@openbravo.com>
Date: 18-10-2022 11:38:43
URL: https://gitlab.com/openbravo/product/pmods/org.openbravo.warehouse.advancedwarehouseoperations/-/commit/c168208a58dfceec1d3a2a4a58c01e408a47083f [^]

Fixed ISSUE-50567: Fixed NPE when autoconfirming Inventory Count Task

In Count_ITT.createInventoryList() the inventory list is created and associated
to the task using an HQL update, which works fine.

However, when autoconfirming the task, the task object in DAL memory doesn't have
associated yet the inventory list, therefore throwing the NPE.

We could refresh the task from the database to get that information,
however it is faster to take this information from the Inventory Proposal,
which is previously associated to the task (and loaded in memory).

---
M src/org/openbravo/warehouse/advancedwarehouseoperations/centralbroker/InventoryCountGenerator.java
---
(0142234)
hgbot (developer)
2022-10-18 15:24

Merge request merged: https://gitlab.com/openbravo/product/pmods/org.openbravo.warehouse.advancedwarehouseoperations/-/merge_requests/71 [^]

- Issue History
Date Modified Username Field Change
2022-10-18 11:35 vmromanos New Issue
2022-10-18 11:35 vmromanos Assigned To => vmromanos
2022-10-18 11:35 vmromanos Regression date => 2022-09-17
2022-10-18 11:35 vmromanos Regression introduced by commit => https://gitlab.com/openbravo/product/pmods/org.openbravo.warehouse.advancedwarehouseoperations/-/commit/a93c6528a0132864982fbfc7347556e80198fe0d#725d82d52cf130dd9ad73f6ac6f7d867e6f94dd6_77_77 [^]
2022-10-18 11:35 vmromanos Regression level => Pre packaging ( pi )
2022-10-18 11:36 vmromanos Relationship added caused by 0050091
2022-10-18 11:45 hgbot Note Added: 0142224
2022-10-18 11:57 vmromanos Note Added: 0142225
2022-10-18 11:58 vmromanos Status new => scheduled
2022-10-18 15:24 hgbot Resolution open => fixed
2022-10-18 15:24 hgbot Status scheduled => closed
2022-10-18 15:24 hgbot Note Added: 0142233
2022-10-18 15:24 hgbot Note Added: 0142234


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker