NPE viewing migrated GK customers due null currency id
------------------------------------------------------
Key: MIFOS-3717
URL: http://mifosforge.jira.com/browse/MIFOS-3717
Project: mifos
Issue Type: Bug
Components: Clients
Affects Versions: Release 1.6.0
Environment: 1.6 release with GK data set
Reporter: jbrewster
Priority: Major
Attachments: GroupNPE.txt
While testing resolved issue MIFOS-3706, encountered another NPE trying to view
a group within a migrated Kendra.
Repro steps:
Pre-test: upgrade Mifos instance with GK data to latest 1.6.x branch build -
a1a7b471f24e4977a9a439224ce377e2fc04716a
1. Log onto test instance with GK data (ask jeff for details)
2. search for Kendra 0036-000082070
3. click on Group "03:04:76:0102" from Kendra details page
4. Get error "More than one row returned" in getCustomerAccountSummaryDto. See
attached trace "GroupNPE.txt".
expected result: View Group details
actual result: exception (see attachment)
Investigation with KeithW identified null currency for the group account being
searched. So query:
select a.global_account_num as globalAccountNum,
cs.misc_fees_currency_id as currency,
((cs.misc_fees - cs.misc_fees_paid) +
(cs.misc_penalty - cs.misc_penalty_paid)) as totalChargeDue,
sum(cfs.amount - cfs.amount_paid) as totalFeesDue
from account a
join customer_schedule cs on cs.account_id = a.account_id
left join customer_fee_schedule cfs on cfs.id = cs.id
where a.customer_id = '82316'
and (cs.action_date <= date('2010-09-14') or cs.action_date = (select
min(cs2.action_date)
from customer_schedule cs2
where cs2.account_id = cs.account_id
and cs2.action_date >= date('2010-09-14')))
group by globalAccountNum, currency;
Returned:
globalAccountNum, currency, totalChargeDue, totalFeesDue
'000100000252275', , ,
'000100000252275', 2, 0.0000,
First row above has an unexpected null currency. This occurs in many records
for GK (older snapshot)
SELECT count(*) FROM customer_schedule c where c.misc_fees_currency_id is
null; ==> 6347330
SELECT count(*) FROM customer_schedule c where c.misc_fees_paid_currency_id is
null ==== 12010423
SELECT count(*) FROM customer_schedule c where c.misc_penalty_currency_id is
null; ==== 12010427
SELECT distinct c.amount_currency_id FROM customer_fee_schedule c; === 0
SELECT distinct c.amount_paid_currency_id FROM customer_fee_schedule c; === 0
Per Keith, all currency_id fields for these fields should have the same value
- e.g. '2'
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://mifosforge.jira.com/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Mifos-issues mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mifos-issues