[ https://issues.apache.org/jira/browse/SYNCOPE-1533?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dmitriy B. updated SYNCOPE-1533: -------------------------------- Description: Starting from Syncope 2.1.X the contract of *equals* and *hashCode *methods has changed in transfer objects (TOs). It was done to improve the performance as previously they used the reflection. Some of models have an explicit declaration of equals and hashCode and the behavior remained as in 2.0.X version of Apache Syncope. Here is the list of models for which the calculation of equals and hashCode has changed: 1. org.apache.syncope.client.console.widgets.reconciliation.Any 2. org.apache.syncope.client.console.widgets.reconciliation.Anys 3. org.apache.syncope.client.console.widgets.reconciliation.Misaligned 4. org.apache.syncope.client.console.widgets.reconciliation.Missing 5. org.apache.syncope.client.console.widgets.reconciliation.ReconciliationReport 6. org.apache.syncope.common.lib.info.PlatformInfo 7. org.apache.syncope.common.lib.info.SystemInfo 8. org.apache.syncope.common.lib.log.LogAppender 9. org.apache.syncope.common.lib.patch.ResourceDeassociationPatch 10. org.apache.syncope.common.lib.policy.DefaultAccountRuleConf 11. org.apache.syncope.common.lib.policy.PolicyTO 12. org.apache.syncope.common.lib.policy.AccountPolicyTO 13. org.apache.syncope.common.lib.policy.PasswordPolicyTO 14. org.apache.syncope.common.lib.policy.ProvisioningPolicyTO 15. org.apache.syncope.common.lib.policy.PullPolicyTO 16. org.apache.syncope.common.lib.report.AbstractAnyReportletConf 17. org.apache.syncope.common.lib.report.AbstractReportletConf 18. org.apache.syncope.common.lib.report.AuditReportletConf 19. org.apache.syncope.common.lib.report.GroupReportletConf 20. org.apache.syncope.common.lib.report.ReconciliationReportletConf 21. org.apache.syncope.common.lib.report.StaticReportletConf 22. org.apache.syncope.common.lib.report.UserReportletConf 23. org.apache.syncope.common.lib.to.AccessTokenTO 24. org.apache.syncope.common.lib.to.AnyTypeClassTO 25. org.apache.syncope.common.lib.to.AnyTypeTO 26. org.apache.syncope.common.lib.to.CamelMetrics 27. org.apache.syncope.common.lib.to.CamelRouteTO 28. org.apache.syncope.common.lib.to.ConnIdObjectClassTO 29. org.apache.syncope.common.lib.to.ConnInstanceTO 30. org.apache.syncope.common.lib.to.ConnPoolConfTO 31. org.apache.syncope.common.lib.to.DomainTO 32. org.apache.syncope.common.lib.to.DynRealmTO 33. org.apache.syncope.common.lib.to.ErrorTO 34. org.apache.syncope.common.lib.to.ItemTO 35. org.apache.syncope.common.lib.to.JobTO 36. org.apache.syncope.common.lib.to.MailTemplateTO 37. org.apache.syncope.common.lib.to.MappingTO 38. org.apache.syncope.common.lib.to.OIDCLoginRequestTO 39. org.apache.syncope.common.lib.to.OIDCLoginResponseTO 40. org.apache.syncope.common.lib.to.OIDCLogoutRequestTO 41. org.apache.syncope.common.lib.to.OIDCProviderTO 42. org.apache.syncope.common.lib.to.OrgUnitTO 43. org.apache.syncope.common.lib.to.ProvisionTO 44. org.apache.syncope.common.lib.to.RealmTO 45. org.apache.syncope.common.lib.to.ReconStatus 46. org.apache.syncope.common.lib.to.RelationshipTypeTO 47. org.apache.syncope.common.lib.to.ReportTemplateTO 48. org.apache.syncope.common.lib.to.ResourceTO 49. org.apache.syncope.common.lib.to.RoleTO 50. org.apache.syncope.common.lib.to.SAML2IdPTO 51. org.apache.syncope.common.lib.to.SAML2LoginResponseTO 52. org.apache.syncope.common.lib.to.SAML2ReceivedResponseTO 53. org.apache.syncope.common.lib.to.SAML2RequestTO 54. org.apache.syncope.common.rest.api.beans.AbstractQuery 55. org.apache.syncope.common.rest.api.beans.AccessTokenQuery 56. org.apache.syncope.common.rest.api.beans.AnyQuery 57. org.apache.syncope.common.rest.api.beans.ExecQuery 58. org.apache.syncope.common.rest.api.beans.ExecuteQuery 59. org.apache.syncope.common.rest.api.beans.SchemaQuery 60. org.apache.syncope.common.rest.api.beans.TaskQuery 61. org.apache.syncope.fit.core.reference.TestAccountRuleConf 62. org.apache.syncope.fit.core.reference.TestPasswordRuleConf To preserve the previous behavior and don't break the backward compatibility *equals* and *hashCode* should be overwritten using the for _org.apache.commons.lang3.builder.EqualsBuilder_ and _org.apache.commons.lang3.builder.HashCodeBuilder_ . was: Starting from Syncope 2.1.X the contract of *equals* and *hashCode *methods has changed in transfer objects (TOs). It was done to improve the performance as previously they used the reflection. Some of models have an explicit declaration of equals and hashCode and the behavior remained as in 2.0.X version of Apache Syncope. Here is the list of models for which the calculation of equals and hashCode has changed: 1. org.apache.syncope.client.console.widgets.reconciliation.Any 2. org.apache.syncope.client.console.widgets.reconciliation.Anys 3. org.apache.syncope.client.console.widgets.reconciliation.Misaligned 4. org.apache.syncope.client.console.widgets.reconciliation.Missing 5. org.apache.syncope.client.console.widgets.reconciliation.ReconciliationReport 6. org.apache.syncope.common.lib.info.PlatformInfo 7. org.apache.syncope.common.lib.info.SystemInfo 8. org.apache.syncope.common.lib.log.LogAppender 9. org.apache.syncope.common.lib.patch.ResourceDeassociationPatch 10. org.apache.syncope.common.lib.policy.DefaultAccountRuleConf 11. org.apache.syncope.common.lib.policy.PolicyTO 12. org.apache.syncope.common.lib.policy.AccountPolicyTO 13. org.apache.syncope.common.lib.policy.PasswordPolicyTO 14. org.apache.syncope.common.lib.policy.ProvisioningPolicyTO 15. org.apache.syncope.common.lib.policy.PullPolicyTO 16. org.apache.syncope.common.lib.report.AbstractAnyReportletConf 17. org.apache.syncope.common.lib.report.AbstractReportletConf 18. org.apache.syncope.common.lib.report.AuditReportletConf 19. org.apache.syncope.common.lib.report.GroupReportletConf 20. org.apache.syncope.common.lib.report.ReconciliationReportletConf 21. org.apache.syncope.common.lib.report.StaticReportletConf 22. org.apache.syncope.common.lib.report.UserReportletConf 23. org.apache.syncope.common.lib.to.AccessTokenTO 24. org.apache.syncope.common.lib.to.AnyTypeClassTO 25. org.apache.syncope.common.lib.to.AnyTypeTO 26. org.apache.syncope.common.lib.to.CamelMetrics 27. org.apache.syncope.common.lib.to.CamelRouteTO 28. org.apache.syncope.common.lib.to.ConnIdObjectClassTO 29. org.apache.syncope.common.lib.to.ConnInstanceTO 30. org.apache.syncope.common.lib.to.ConnPoolConfTO 31. org.apache.syncope.common.lib.to.DomainTO 32. org.apache.syncope.common.lib.to.DynRealmTO 33. org.apache.syncope.common.lib.to.ErrorTO 34. org.apache.syncope.common.lib.to.ItemTO 35. org.apache.syncope.common.lib.to.JobTO 36. org.apache.syncope.common.lib.to.MailTemplateTO 37. org.apache.syncope.common.lib.to.MappingTO 38. org.apache.syncope.common.lib.to.OIDCLoginRequestTO 39. org.apache.syncope.common.lib.to.OIDCLoginResponseTO 40. org.apache.syncope.common.lib.to.OIDCLogoutRequestTO 41. org.apache.syncope.common.lib.to.OIDCProviderTO 42. org.apache.syncope.common.lib.to.OrgUnitTO 43. org.apache.syncope.common.lib.to.ProvisionTO 44. org.apache.syncope.common.lib.to.RealmTO 45. org.apache.syncope.common.lib.to.ReconStatus 46. org.apache.syncope.common.lib.to.RelationshipTypeTO 47. org.apache.syncope.common.lib.to.ReportTemplateTO 48. org.apache.syncope.common.lib.to.ResourceTO 49. org.apache.syncope.common.lib.to.RoleTO 50. org.apache.syncope.common.lib.to.SAML2IdPTO 51. org.apache.syncope.common.lib.to.SAML2LoginResponseTO 52. org.apache.syncope.common.lib.to.SAML2ReceivedResponseTO 53. org.apache.syncope.common.lib.to.SAML2RequestTO 54. org.apache.syncope.common.rest.api.beans.AbstractQuery 55. org.apache.syncope.common.rest.api.beans.AccessTokenQuery 56. org.apache.syncope.common.rest.api.beans.AnyQuery 57. org.apache.syncope.common.rest.api.beans.ExecQuery 58. org.apache.syncope.common.rest.api.beans.ExecuteQuery 59. org.apache.syncope.common.rest.api.beans.SchemaQuery 60. org.apache.syncope.common.rest.api.beans.TaskQuery 61. org.apache.syncope.fit.core.reference.TestAccountRuleConf 62. org.apache.syncope.fit.core.reference.TestPasswordRuleConf To preserve the previous behavior and don't break the backward compatibility *equals *and *hashCode* should be overwritten using the for _org.apache.commons.lang3.builder.EqualsBuilder_ and _org.apache.commons.lang3.builder.HashCodeBuilder_ . > Broken backward compatibilty because of changes in Equals and HashCode > methods in TOs > ------------------------------------------------------------------------------------- > > Key: SYNCOPE-1533 > URL: https://issues.apache.org/jira/browse/SYNCOPE-1533 > Project: Syncope > Issue Type: Bug > Components: core > Affects Versions: 2.1.5 > Reporter: Dmitriy B. > Priority: Major > > Starting from Syncope 2.1.X the contract of *equals* and *hashCode *methods > has changed in transfer objects (TOs). It was done to improve the performance > as previously they used the reflection. Some of models have an explicit > declaration of equals and hashCode and the behavior remained as in 2.0.X > version of Apache Syncope. > Here is the list of models for which the calculation of equals and hashCode > has changed: > 1. org.apache.syncope.client.console.widgets.reconciliation.Any > 2. org.apache.syncope.client.console.widgets.reconciliation.Anys > 3. org.apache.syncope.client.console.widgets.reconciliation.Misaligned > 4. org.apache.syncope.client.console.widgets.reconciliation.Missing > 5. > org.apache.syncope.client.console.widgets.reconciliation.ReconciliationReport > 6. org.apache.syncope.common.lib.info.PlatformInfo > 7. org.apache.syncope.common.lib.info.SystemInfo > 8. org.apache.syncope.common.lib.log.LogAppender > 9. org.apache.syncope.common.lib.patch.ResourceDeassociationPatch > 10. org.apache.syncope.common.lib.policy.DefaultAccountRuleConf > 11. org.apache.syncope.common.lib.policy.PolicyTO > 12. org.apache.syncope.common.lib.policy.AccountPolicyTO > 13. org.apache.syncope.common.lib.policy.PasswordPolicyTO > 14. org.apache.syncope.common.lib.policy.ProvisioningPolicyTO > 15. org.apache.syncope.common.lib.policy.PullPolicyTO > 16. org.apache.syncope.common.lib.report.AbstractAnyReportletConf > 17. org.apache.syncope.common.lib.report.AbstractReportletConf > 18. org.apache.syncope.common.lib.report.AuditReportletConf > 19. org.apache.syncope.common.lib.report.GroupReportletConf > 20. org.apache.syncope.common.lib.report.ReconciliationReportletConf > 21. org.apache.syncope.common.lib.report.StaticReportletConf > 22. org.apache.syncope.common.lib.report.UserReportletConf > 23. org.apache.syncope.common.lib.to.AccessTokenTO > 24. org.apache.syncope.common.lib.to.AnyTypeClassTO > 25. org.apache.syncope.common.lib.to.AnyTypeTO > 26. org.apache.syncope.common.lib.to.CamelMetrics > 27. org.apache.syncope.common.lib.to.CamelRouteTO > 28. org.apache.syncope.common.lib.to.ConnIdObjectClassTO > 29. org.apache.syncope.common.lib.to.ConnInstanceTO > 30. org.apache.syncope.common.lib.to.ConnPoolConfTO > 31. org.apache.syncope.common.lib.to.DomainTO > 32. org.apache.syncope.common.lib.to.DynRealmTO > 33. org.apache.syncope.common.lib.to.ErrorTO > 34. org.apache.syncope.common.lib.to.ItemTO > 35. org.apache.syncope.common.lib.to.JobTO > 36. org.apache.syncope.common.lib.to.MailTemplateTO > 37. org.apache.syncope.common.lib.to.MappingTO > 38. org.apache.syncope.common.lib.to.OIDCLoginRequestTO > 39. org.apache.syncope.common.lib.to.OIDCLoginResponseTO > 40. org.apache.syncope.common.lib.to.OIDCLogoutRequestTO > 41. org.apache.syncope.common.lib.to.OIDCProviderTO > 42. org.apache.syncope.common.lib.to.OrgUnitTO > 43. org.apache.syncope.common.lib.to.ProvisionTO > 44. org.apache.syncope.common.lib.to.RealmTO > 45. org.apache.syncope.common.lib.to.ReconStatus > 46. org.apache.syncope.common.lib.to.RelationshipTypeTO > 47. org.apache.syncope.common.lib.to.ReportTemplateTO > 48. org.apache.syncope.common.lib.to.ResourceTO > 49. org.apache.syncope.common.lib.to.RoleTO > 50. org.apache.syncope.common.lib.to.SAML2IdPTO > 51. org.apache.syncope.common.lib.to.SAML2LoginResponseTO > 52. org.apache.syncope.common.lib.to.SAML2ReceivedResponseTO > 53. org.apache.syncope.common.lib.to.SAML2RequestTO > 54. org.apache.syncope.common.rest.api.beans.AbstractQuery > 55. org.apache.syncope.common.rest.api.beans.AccessTokenQuery > 56. org.apache.syncope.common.rest.api.beans.AnyQuery > 57. org.apache.syncope.common.rest.api.beans.ExecQuery > 58. org.apache.syncope.common.rest.api.beans.ExecuteQuery > 59. org.apache.syncope.common.rest.api.beans.SchemaQuery > 60. org.apache.syncope.common.rest.api.beans.TaskQuery > 61. org.apache.syncope.fit.core.reference.TestAccountRuleConf > 62. org.apache.syncope.fit.core.reference.TestPasswordRuleConf > To preserve the previous behavior and don't break the backward compatibility > *equals* and *hashCode* should be overwritten using the for > _org.apache.commons.lang3.builder.EqualsBuilder_ and > _org.apache.commons.lang3.builder.HashCodeBuilder_ . -- This message was sent by Atlassian Jira (v8.3.4#803005)