From dbe62bee373d5b265ec17e075f95c580295d381a Mon Sep 17 00:00:00 2001 From: Erik van Zijst Date: Fri, 8 Jan 2016 15:11:59 -0800 Subject: [PATCH] #1858: The Java equals/hashcode methods ignores state from superclasses This fixes equals/hashCode for derived classes. --- .../src/main/resources/Java/pojo.mustache | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/Java/pojo.mustache b/modules/swagger-codegen/src/main/resources/Java/pojo.mustache index eea33d346d4d..99fa12108a1c 100644 --- a/modules/swagger-codegen/src/main/resources/Java/pojo.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/pojo.mustache @@ -34,15 +34,16 @@ public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#seriali if (o == null || getClass() != o.getClass()) { return false; } - {{classname}} {{classVarName}} = ({{classname}}) o;{{#hasVars}} - return {{#vars}}Objects.equals({{name}}, {{classVarName}}.{{name}}){{#hasMore}} && - {{/hasMore}}{{^hasMore}};{{/hasMore}}{{/vars}}{{/hasVars}}{{^hasVars}} - return true;{{/hasVars}} + {{classname}} {{classVarName}} = ({{classname}}) o; + + return true {{#hasVars}}&& {{#vars}}Objects.equals({{name}}, {{classVarName}}.{{name}}){{#hasMore}} && + {{/hasMore}}{{/vars}}{{/hasVars}} + {{#parent}}&& super.equals(o){{/parent}}; } @Override public int hashCode() { - return Objects.hash({{#vars}}{{name}}{{#hasMore}}, {{/hasMore}}{{/vars}}); + return Objects.hash({{#vars}}{{name}}{{#hasMore}}, {{/hasMore}}{{/vars}}{{#parent}}{{#hasVars}},{{/hasVars}} super.hashCode(){{/parent}}); } @Override