[ 
https://issues.apache.org/jira/browse/FINERACT-827?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17013775#comment-17013775
 ] 

Michael Vorburger commented on FINERACT-827:
--------------------------------------------

For full history of what's what and how we got to this:

1. Awasum in his work on FINERACT-702 saw that SpotBugs pointed out, absolutely 
correctly, that {{ShareAccountCharge}} originally had only an {{equals()}} 
method but no {{hashCode()}}, which is always a clear bug (no discussion here). 
 Awasum thus, as a first step, removed that {{equals()}}, which was merged in 
https://github.com/apache/fineract/pull/682.

2. Michael followed up on that trying to fix it correctly, together with some 
other {{equals()}} / {{hashCode()}} changes, in 
https://github.com/apache/fineract/pull/684, by adding both {{equals()}} / 
{{hashCode()}} to {{ShareAccountCharge}}. This failed 
{{ShareAccountIntegrationTests}}'s {{testCreateShareAccountWithCharges()}} in 
line 487 {{Assert.assertEquals("0.0", 
String.valueOf(chargeDef.get("amountOutstanding")));}} with a 
{{org.junit.ComparisonFailure: expected:<[0].0> but was:<[2].0>}}. The 
{{equals()}} / {{hashCode()}} was implemented using Commons Lang EqualsBuilder 
and HashCodeBuilder (instead of Objects.hash() and Objects.equals(), which 
should not matter...), and using all fields, not using {{getId()}} for 
{{@ManyToOne}} fields {{ShareAccount}} and {{Charge}}

> ShareAccountCharge is missing hashCode() & equals() but adding it fails 
> ShareAccountIntegrationTests
> ----------------------------------------------------------------------------------------------------
>
>                 Key: FINERACT-827
>                 URL: https://issues.apache.org/jira/browse/FINERACT-827
>             Project: Apache Fineract
>          Issue Type: Bug
>            Reporter: Michael Vorburger
>            Priority: Blocker
>
> During work in FINERACT-702 (specifically during 
> [pull/684|https://github.com/apache/fineract/pull/684]), we've stumbled upon 
> {{ShareAccountCharge}} missing required {{hashCode()}} & {{equals()}} 
> methods, but found that adding them fails the 
> {{ShareAccountIntegrationTests}}.
> This is likely an indication of a major bug worth further investigating.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to