Openbravo Issue Tracking System - Retail Modules
View Issue Details
0031836Retail ModulesWeb POSpublic2016-01-08 09:492016-01-19 17:19
gorkaion 
mtaal 
immediatecriticalalways
closedfixed 
5
main 
RR16Q2 
migueldejuana
QA functional test
2015-11-27
pi
https://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/bc165573bb04 [^]
No
0031836: Null Pointer Exception on Save again button of Errors While Importing POS Data
If an Order fails to integrate and appear in the Errors While Importing POS Data. When clicking on the Save again button a Null Pointer Exception message appears.
1. ensure that the current period is closed (in Open/Close Period Control)
2. create a new receipt in the POS
3. check that the receipt appear in the Errors While Importing POS Data with period closed error.
4. Open the period again
5. Click on Save Again button of "Errors While Importing POS Data" window.
6. See that a Null Pointer Exception message popup appears and the order is not processed.
The real exception is thrown in the SaveDataActionHandler class of org.openbravo.retail.posterminal.

Based in the Data Type of the error record it has to search the java class that manages the json that has to be imported. Since the ExternalOrderLoaded was added there are 2 different classes implementing the "Order" entity. So the following line of code throws a WELD exception as it does not know which class to inject
syncProcess = syncProcesses.select(new DataSynchronizationProcess.Selector(type)).get();

This exception is catched in the last catch Exception block. After this catch the SaveDataActionHandler is returning a null that it is the reason of the NPE message.

2 fixes must be done:

* The execute method should never return null. It should return an empty JSON or preferably a JSON with the error message.
* When the java class that manages the json is loaded it should consider the case when more than one is present and should pick up one. Based on the json or setting up some priorities on the classes.
No tags attached.
depends on backport 0031854RR16Q1 closed mtaal Null Pointer Exception on Save again button of Errors While Importing POS Data 
Issue History
2016-01-08 09:49gorkaionNew Issue
2016-01-08 09:49gorkaionAssigned To => Retail
2016-01-08 09:49gorkaionResolution time => 1452553200
2016-01-08 09:49gorkaionRegression level => QA functional test
2016-01-08 09:49gorkaionRegression date => 2015-11-27
2016-01-08 09:49gorkaionRegression introduced in release => pi
2016-01-08 09:49gorkaionRegression introduced by commit => https://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/bc165573bb04 [^]
2016-01-08 09:49gorkaionTriggers an Emergency Pack => No
2016-01-11 11:29OrekariaStatusnew => scheduled
2016-01-11 11:29OrekariaAssigned ToRetail => mtaal
2016-01-11 11:29OrekariaStatusscheduled => acknowledged
2016-01-11 11:30OrekariaStatusacknowledged => scheduled
2016-01-13 13:56mtaalTarget VersionRR16Q1 => RR16Q2
2016-01-13 19:33mtaalNote Added: 0083272
2016-01-13 20:11hgbotCheckin
2016-01-13 20:11hgbotNote Added: 0083273
2016-01-13 20:11hgbotStatusscheduled => resolved
2016-01-13 20:11hgbotResolutionopen => fixed
2016-01-13 20:11hgbotFixed in SCM revision => http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/c911b65dace6da39d028fe4898646f3adb2e9882 [^]
2016-01-14 13:11mtaalReview Assigned To => marvintm
2016-01-18 16:48mtaalReview Assigned Tomarvintm => migueldejuana
2016-01-19 17:19migueldejuanaNote Added: 0083412
2016-01-19 17:19migueldejuanaStatusresolved => closed

Notes
(0083272)
mtaal   
2016-01-13 19:33   
Imho it is correct to throw an error if there is more than orderloader which Weld finds. To handle this correctly would mean that we need an additional selection mechanism. I think this requires a separate design activity if there is at all a need to support this.

gr. Martin
(0083273)
hgbot   
2016-01-13 20:11   
Repository: erp/pmods/org.openbravo.retail.posterminal
Changeset: c911b65dace6da39d028fe4898646f3adb2e9882
Author: Martin Taal <martin.taal <at> openbravo.com>
Date: Wed Jan 13 19:52:26 2016 +0100
URL: http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/c911b65dace6da39d028fe4898646f3adb2e9882 [^]

Fixes issue 31836: Null Pointer Exception on Save again button of Errors While Importing POS Data
Remove annotation to not confuse Weld, compute entity directly, improve error message when error occurs in save import error

---
M src/org/openbravo/retail/posterminal/ExternalOrderLoader.java
M src/org/openbravo/retail/posterminal/SaveDataActionHandler.java
---
(0083412)
migueldejuana   
2016-01-19 17:19   
Tested and reviewed in RR16Q2