Openbravo Issue Tracking System - Retail Modules
View Issue Details
0031854Retail ModulesWeb POSpublic2016-01-08 09:492016-01-19 17:18
gorkaion 
mtaal 
immediatecriticalalways
closedfixed 
5
main 
RR16Q1 
migueldejuana
OBPS
QA functional test
2015-11-27
pi
https://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/bc165573bb04 [^]
No
0031854: 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.
blocks defect 0031836RR16Q2 closed mtaal Null Pointer Exception on Save again button of Errors While Importing POS Data 
Issue History
2016-01-11 11:30OrekariaTypedefect => backport
2016-01-14 13:09mtaalReview Assigned To => marvintm
2016-01-14 13:10hgbotCheckin
2016-01-14 13:10hgbotNote Added: 0083299
2016-01-14 13:10hgbotStatusscheduled => resolved
2016-01-14 13:10hgbotResolutionopen => fixed
2016-01-14 13:10hgbotFixed in SCM revision => http://code.openbravo.com/retail/backports/3.0RR16Q1/org.openbravo.retail.posterminal/rev/724d274aa078b095d19d22a03e5431494a1fd041 [^]
2016-01-18 16:49mtaalReview Assigned Tomarvintm => migueldejuana
2016-01-19 17:18migueldejuanaNote Added: 0083411
2016-01-19 17:18migueldejuanaStatusresolved => closed

Notes
(0083299)
hgbot   
2016-01-14 13:10   
Repository: retail/backports/3.0RR16Q1/org.openbravo.retail.posterminal
Changeset: 724d274aa078b095d19d22a03e5431494a1fd041
Author: Martin Taal <martin.taal <at> openbravo.com>
Date: Thu Jan 14 13:09:35 2016 +0100
URL: http://code.openbravo.com/retail/backports/3.0RR16Q1/org.openbravo.retail.posterminal/rev/724d274aa078b095d19d22a03e5431494a1fd041 [^]

Fixes issue 31854: Null Pointer Exception on Save again button of Errors While Importing POS Data
Let external order loader determine entity differently, return correct error message on exception

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