Openbravo Issue Tracking System - Openbravo ERP
View Issue Details
0032372Openbravo ERP09. Financial managementpublic2016-02-26 13:572016-03-01 18:36
ngarcia 
AtulOpenbravo 
immediateminoralways
closedfixed 
5
 
3.0PR16Q13.0PR16Q1 
aferraz
Core
Production - Confirmed Stable
2014-09-02
3.0PR14Q4
https://code.openbravo.com/erp/devel/pi/rev/69108bf7103b [^]
No
0032372: NullPointerException when posting a Physical Inventory with a line without an associated transaction (not stocked product)
NullPointerException when posting a Physical Inventory with a line without an associated transaction (not stocked product)
In an instance without the following issue solved:

https://issues.openbravo.com/view.php?id=31835 [^]

As group admin role:
   Create a new product and set is as Stocked = 'Y'
   Create a goods receipt to increase its stock
   Create a goods shipment to leave its stock to 0
   Set it as Stocked = 'N' (it will not possible after the fix of 31835)
   Create a Physical inventory for the same warehouse the stock was received in
   Launch the Create Inventory Count with the option of Inventory Quantity empty
   Check the product is not inserted
   Launch the Create Inventory Count with the option of Inventory Quantity = 0
   Check the product is inserted and it shouldn't
   Process the inventory
   Try to post it and check the following error message is shown:
      Process failed during execution
   The logs shows:
      WARN org.openbravo.erpCommon.ad_forms.AcctServer - Accounting process failed. RecordID: 0E718DFD7B384111B2D2112722FCFF8B - TableId: 321
java.lang.NullPointerException
    at org.openbravo.erpCommon.ad_forms.DocInventory.createFact(DocInventory.java:183)
    at org.openbravo.erpCommon.ad_forms.AcctServer.postLogic(AcctServer.java:1111)
    at org.openbravo.erpCommon.ad_forms.AcctServer.post(AcctServer.java:804)
    at org.openbravo.erpCommon.ad_forms.AcctServer.post(AcctServer.java:719)
    at org.openbravo.erpCommon.ad_actionButton.Posted.processButton(Posted.java:273)
    at org.openbravo.erpCommon.ad_actionButton.Posted.doPost(Posted.java:104)
The problem is in the following code:

      if ("NC".equals(line.transaction.getCostingStatus())) {
        setStatus(STATUS_NotCalculatedCost);
      }

but it will also fail in the following:

      if (line.transaction.getTransactionCost() != null
          && line.transaction.getTransactionCost().compareTo(ZERO) == 0) {
        countInvLinesWithTrnCostZero++;
      }

as line.transaction is null

Apart from that, the Create Inventory Count process should avoid inserting not stocked products (check the solution of the 30697 issue)
No tags attached.
blocks defect 0032364 closed AtulOpenbravo NullPointerException when posting a Physical Inventory with a line without an associated transaction (not stocked product) 
Issue History
2016-02-29 14:01AtulOpenbravoTypedefect => backport
2016-02-29 14:01AtulOpenbravoTarget Version => 3.0PR16Q1
2016-02-29 14:43AtulOpenbravoRegression date => 2014-09-02
2016-02-29 14:43AtulOpenbravoRegression introduced in release => 3.0PR14Q4
2016-02-29 14:43AtulOpenbravoRegression introduced by commit => https://code.openbravo.com/erp/devel/pi/rev/69108bf7103b [^]
2016-02-29 14:45AtulOpenbravoNote Added: 0084596
2016-03-01 18:34aferrazRegression level => Production - Confirmed Stable
2016-03-01 18:35hgbotCheckin
2016-03-01 18:35hgbotNote Added: 0084643
2016-03-01 18:35hgbotStatusscheduled => resolved
2016-03-01 18:35hgbotResolutionopen => fixed
2016-03-01 18:35hgbotFixed in SCM revision => http://code.openbravo.com/erp/backports/3.0PR16Q1/rev/36410af94435cda8157af52f445c60b8cd06186b [^]
2016-03-01 18:35hgbotCheckin
2016-03-01 18:35hgbotNote Added: 0084644
2016-03-01 18:36aferrazReview Assigned To => aferraz
2016-03-01 18:36aferrazNote Added: 0084645
2016-03-01 18:36aferrazStatusresolved => closed
2016-03-01 18:36aferrazFixed in Version => 3.0PR16Q1

Notes
(0084596)
AtulOpenbravo   
2016-02-29 14:45   
Test Plan
- Login as Group Admin role:
- Create a new product and set is as Stocked = 'Y'
- Create a goods receipt to increase its stock
- Create a goods shipment to leave its stock to 0
- Set it as Stocked = 'N'.
- Create a Physical inventory for the same warehouse the stock was received in.
- Launch the Create Inventory Count with the option of Inventory Quantity empty.
- Check the product is not inserted.
- Launch the Create Inventory Count with the option of Inventory Quantity = 0.
- Check that product is not inserted.
(0084643)
hgbot   
2016-03-01 18:35   
Repository: erp/backports/3.0PR16Q1
Changeset: 36410af94435cda8157af52f445c60b8cd06186b
Author: Atul Gaware <atul.gaware <at> openbravo.com>
Date: Mon Feb 29 17:00:12 2016 +0530
URL: http://code.openbravo.com/erp/backports/3.0PR16Q1/rev/36410af94435cda8157af52f445c60b8cd06186b [^]

Fixes Issue 32372:NullPointerException when posting a Physical Inventory
with a line without an associated transaction (not stocked product)

- Avoid insertion of zero quantity products in inventory line having
stocked flag as No.
- Code improvement to handle line with null transaction.

---
M src-db/database/model/functions/M_INVENTORY_LISTCREATE.xml
M src/org/openbravo/erpCommon/ad_forms/DocInventory.java
---
(0084644)
hgbot   
2016-03-01 18:35   
Repository: erp/backports/3.0PR16Q1
Changeset: fc884ee68b2c34817254fa8eb77a45e712ba3f6b
Author: Alvaro Ferraz <alvaro.ferraz <at> openbravo.com>
Date: Tue Mar 01 18:02:57 2016 +0100
URL: http://code.openbravo.com/erp/backports/3.0PR16Q1/rev/fc884ee68b2c34817254fa8eb77a45e712ba3f6b [^]

Related to issue 32372: Code review improvements

Call line.getProductCosts only when line.transaction != null in DocInventory.java.

---
M src/org/openbravo/erpCommon/ad_forms/DocInventory.java
---
(0084645)
aferraz   
2016-03-01 18:36   
Code review OK