Skip to content

Commit 33aa5b0

Browse files
pyckleAndrew Pikler
and
Andrew Pikler
authored
[Java][bugfix] hashcode/equals behave incorrectly when inheritance is used in Generated Pojos (#15745)
* Fix Java equals and hashCode methods to work with inheritence (#5756) * Regenerate code samples with improved hashCode/equals --------- Co-authored-by: Andrew Pikler <[email protected]>
1 parent 7e89e1e commit 33aa5b0

File tree

266 files changed

+1050
-1017
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

266 files changed

+1050
-1017
lines changed

modules/openapi-generator/src/main/resources/JavaInflector/pojo.mustache

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,13 @@ public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtens
5959
return false;
6060
}
6161
{{classname}} {{classVarName}} = ({{classname}}) o;{{#hasVars}}
62-
return {{#vars}}Objects.equals({{name}}, {{classVarName}}.{{name}}){{^-last}} &&
63-
{{/-last}}{{#-last}};{{/-last}}{{/vars}}{{/hasVars}}{{^hasVars}}
64-
return true;{{/hasVars}}
62+
return {{#parent}}super.equals(o) && {{/parent}}{{#vars}}Objects.equals({{name}}, {{classVarName}}.{{name}}){{^-last}} &&
63+
{{/-last}}{{#-last}};{{/-last}}{{/vars}}{{/hasVars}}{{^hasVars}}{{#parent}}return super.equals(o);{{/parent}}{{^parent}}return true;{{/parent}}{{/hasVars}}
6564
}
6665

6766
@Override
6867
public int hashCode() {
69-
return Objects.hash({{#vars}}{{name}}{{^-last}}, {{/-last}}{{/vars}});
68+
return {{^hasVars}}{{#parent}}super.hashCode(){{/parent}}{{^parent}}1{{/parent}}{{/hasVars}}{{#hasVars}}Objects.hash({{#vars}}{{#parent}}super.hashCode(), {{/parent}}{{name}}{{^-last}}, {{/-last}}{{/vars}}){{/hasVars}};
7069
}
7170

7271
@Override

modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-cdi/pojo.mustache

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,15 +81,13 @@ public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtens
8181
return false;
8282
}
8383
{{classname}} {{classVarName}} = ({{classname}}) o;{{#hasVars}}
84-
return {{#vars}}Objects.equals({{name}}, {{classVarName}}.{{name}}){{^-last}} &&
85-
{{/-last}}{{/vars}}{{#parent}} &&
86-
super.equals(o){{/parent}};{{/hasVars}}{{^hasVars}}
87-
return true;{{/hasVars}}
84+
return {{#parent}}super.equals(o) && {{/parent}}{{#vars}}Objects.equals({{name}}, {{classVarName}}.{{name}}){{^-last}} &&
85+
{{/-last}}{{#-last}};{{/-last}}{{/vars}}{{/hasVars}}{{^hasVars}}{{#parent}}return super.equals(o);{{/parent}}{{^parent}}return true;{{/parent}}{{/hasVars}}
8886
}
8987

9088
@Override
9189
public int hashCode() {
92-
return Objects.hash({{#vars}}{{name}}{{^-last}}, {{/-last}}{{/vars}}{{#parent}}{{#hasVars}}, {{/hasVars}}super.hashCode(){{/parent}});
90+
return {{^hasVars}}{{#parent}}super.hashCode(){{/parent}}{{^parent}}1{{/parent}}{{/hasVars}}{{#hasVars}}Objects.hash({{#vars}}{{#parent}}super.hashCode(), {{/parent}}{{name}}{{^-last}}, {{/-last}}{{/vars}}){{/hasVars}};
9391
}
9492

9593
@Override

modules/openapi-generator/src/main/resources/JavaJaxRS/cxf-ext/pojo.mustache

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,24 @@ public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}}{{#vendorExtensi
133133

134134
{{/vars}}
135135

136+
@Override
137+
public boolean equals(Object o) {
138+
if (this == o) {
139+
return true;
140+
}
141+
if (o == null || getClass() != o.getClass()) {
142+
return false;
143+
}
144+
{{classname}} {{classVarName}} = ({{classname}}) o;{{#hasVars}}
145+
return {{#parent}}super.equals(o) && {{/parent}}{{#vars}}Objects.equals({{name}}, {{classVarName}}.{{name}}){{^-last}} &&
146+
{{/-last}}{{#-last}};{{/-last}}{{/vars}}{{/hasVars}}{{^hasVars}}{{#parent}}return super.equals(o);{{/parent}}{{^parent}}return true;{{/parent}}{{/hasVars}}
147+
}
148+
149+
@Override
150+
public int hashCode() {
151+
return {{^hasVars}}{{#parent}}super.hashCode(){{/parent}}{{^parent}}1{{/parent}}{{/hasVars}}{{#hasVars}}Objects.hash({{#vars}}{{#parent}}super.hashCode(), {{/parent}}{{name}}{{^-last}}, {{/-last}}{{/vars}}){{/hasVars}};
152+
}
153+
136154
@Override
137155
public String toString() {
138156
StringBuilder sb = new StringBuilder();

modules/openapi-generator/src/main/resources/JavaJaxRS/pojo.mustache

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -106,17 +106,15 @@ public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtens
106106
}
107107
if (o == null || getClass() != o.getClass()) {
108108
return false;
109-
}{{#hasVars}}
110-
{{classname}} {{classVarName}} = ({{classname}}) o;
111-
return {{#vars}}Objects.equals(this.{{name}}, {{classVarName}}.{{name}}){{^-last}} &&
112-
{{/-last}}{{/vars}}{{#parent}} &&
113-
super.equals(o){{/parent}};{{/hasVars}}{{^hasVars}}
114-
return true;{{/hasVars}}
109+
}
110+
{{classname}} {{classVarName}} = ({{classname}}) o;{{#hasVars}}
111+
return {{#parent}}super.equals(o) && {{/parent}}{{#vars}}Objects.equals({{name}}, {{classVarName}}.{{name}}){{^-last}} &&
112+
{{/-last}}{{#-last}};{{/-last}}{{/vars}}{{/hasVars}}{{^hasVars}}{{#parent}}return super.equals(o);{{/parent}}{{^parent}}return true;{{/parent}}{{/hasVars}}
115113
}
116114

117115
@Override
118116
public int hashCode() {
119-
return Objects.hash({{#vars}}{{name}}{{^-last}}, {{/-last}}{{/vars}}{{#parent}}{{#hasVars}}, {{/hasVars}}super.hashCode(){{/parent}});
117+
return {{^hasVars}}{{#parent}}super.hashCode(){{/parent}}{{^parent}}1{{/parent}}{{/hasVars}}{{#hasVars}}Objects.hash({{#vars}}{{#parent}}super.hashCode(), {{/parent}}{{name}}{{^-last}}, {{/-last}}{{/vars}}){{/hasVars}};
120118
}
121119

122120
@Override

modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/eap/pojo.mustache

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,13 @@ public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtens
5252
return false;
5353
}
5454
{{classname}} {{classVarName}} = ({{classname}}) o;{{#hasVars}}
55-
return {{#vars}}Objects.equals({{name}}, {{classVarName}}.{{name}}){{^-last}} &&
56-
{{/-last}}{{#-last}};{{/-last}}{{/vars}}{{/hasVars}}{{^hasVars}}
57-
return true;{{/hasVars}}
55+
return {{#parent}}super.equals(o) && {{/parent}}{{#vars}}Objects.equals({{name}}, {{classVarName}}.{{name}}){{^-last}} &&
56+
{{/-last}}{{#-last}};{{/-last}}{{/vars}}{{/hasVars}}{{^hasVars}}{{#parent}}return super.equals(o);{{/parent}}{{^parent}}return true;{{/parent}}{{/hasVars}}
5857
}
5958

6059
@Override
6160
public int hashCode() {
62-
return Objects.hash({{#vars}}{{name}}{{^-last}}, {{/-last}}{{/vars}});
61+
return {{^hasVars}}{{#parent}}super.hashCode(){{/parent}}{{^parent}}1{{/parent}}{{/hasVars}}{{#hasVars}}Objects.hash({{#vars}}{{#parent}}super.hashCode(), {{/parent}}{{name}}{{^-last}}, {{/-last}}{{/vars}}){{/hasVars}};
6362
}
6463

6564
@Override

modules/openapi-generator/src/main/resources/JavaJaxRS/resteasy/pojo.mustache

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,13 @@ public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtens
5454
return false;
5555
}
5656
{{classname}} {{classVarName}} = ({{classname}}) o;{{#hasVars}}
57-
return {{#vars}}Objects.equals({{name}}, {{classVarName}}.{{name}}){{^-last}} &&
58-
{{/-last}}{{#-last}};{{/-last}}{{/vars}}{{/hasVars}}{{^hasVars}}
59-
return true;{{/hasVars}}
57+
return {{#parent}}super.equals(o) && {{/parent}}{{#vars}}Objects.equals({{name}}, {{classVarName}}.{{name}}){{^-last}} &&
58+
{{/-last}}{{#-last}};{{/-last}}{{/vars}}{{/hasVars}}{{^hasVars}}{{#parent}}return super.equals(o);{{/parent}}{{^parent}}return true;{{/parent}}{{/hasVars}}
6059
}
6160

6261
@Override
6362
public int hashCode() {
64-
return Objects.hash({{#vars}}{{name}}{{^-last}}, {{/-last}}{{/vars}});
63+
return {{^hasVars}}{{#parent}}super.hashCode(){{/parent}}{{^parent}}1{{/parent}}{{/hasVars}}{{#hasVars}}Objects.hash({{#vars}}{{#parent}}super.hashCode(), {{/parent}}{{name}}{{^-last}}, {{/-last}}{{/vars}}){{/hasVars}};
6564
}
6665

6766
@Override

modules/openapi-generator/src/main/resources/JavaVertXServer/pojo.mustache

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,13 @@ public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtens
3939
return false;
4040
}
4141
{{classname}} {{classVarName}} = ({{classname}}) o;{{#hasVars}}
42-
return {{#vars}}Objects.equals({{name}}, {{classVarName}}.{{name}}){{^-last}} &&
43-
{{/-last}}{{#-last}};{{/-last}}{{/vars}}{{/hasVars}}{{^hasVars}}
44-
return true;{{/hasVars}}
42+
return {{#parent}}super.equals(o) && {{/parent}}{{#vars}}Objects.equals({{name}}, {{classVarName}}.{{name}}){{^-last}} &&
43+
{{/-last}}{{#-last}};{{/-last}}{{/vars}}{{/hasVars}}{{^hasVars}}{{#parent}}return super.equals(o);{{/parent}}{{^parent}}return true;{{/parent}}{{/hasVars}}
4544
}
4645

4746
@Override
4847
public int hashCode() {
49-
return Objects.hash({{#vars}}{{name}}{{^-last}}, {{/-last}}{{/vars}});
48+
return {{^hasVars}}{{#parent}}super.hashCode(){{/parent}}{{^parent}}1{{/parent}}{{/hasVars}}{{#hasVars}}Objects.hash({{#vars}}{{#parent}}super.hashCode(), {{/parent}}{{name}}{{^-last}}, {{/-last}}{{/vars}}){{/hasVars}};
5049
}
5150

5251
@Override

modules/openapi-generator/src/main/resources/JavaVertXWebServer/pojo.mustache

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,13 @@ public class {{classname}} {{#parent}}extends {{{.}}}{{/parent}} {{#vendorExtens
3939
return false;
4040
}
4141
{{classname}} {{classVarName}} = ({{classname}}) o;{{#hasVars}}
42-
return {{#vars}}Objects.equals({{name}}, {{classVarName}}.{{name}}){{^-last}} &&
43-
{{/-last}}{{#-last}};{{/-last}}{{/vars}}{{/hasVars}}{{^hasVars}}
44-
return true;{{/hasVars}}
42+
return {{#parent}}super.equals(o) && {{/parent}}{{#vars}}Objects.equals({{name}}, {{classVarName}}.{{name}}){{^-last}} &&
43+
{{/-last}}{{#-last}};{{/-last}}{{/vars}}{{/hasVars}}{{^hasVars}}{{#parent}}return super.equals(o);{{/parent}}{{^parent}}return true;{{/parent}}{{/hasVars}}
4544
}
4645

4746
@Override
4847
public int hashCode() {
49-
return Objects.hash({{#vars}}{{name}}{{^-last}}, {{/-last}}{{/vars}});
48+
return {{^hasVars}}{{#parent}}super.hashCode(){{/parent}}{{^parent}}1{{/parent}}{{/hasVars}}{{#hasVars}}Objects.hash({{#vars}}{{#parent}}super.hashCode(), {{/parent}}{{name}}{{^-last}}, {{/-last}}{{/vars}}){{/hasVars}};
5049
}
5150

5251
@Override

modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsBaseTest.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.openapitools.codegen.DefaultGenerator;
1111
import org.openapitools.codegen.MockDefaultGenerator;
1212
import org.openapitools.codegen.TestUtils;
13+
import org.openapitools.codegen.java.assertions.JavaFileAssert;
1314
import org.openapitools.codegen.languages.AbstractJavaJAXRSServerCodegen;
1415
import org.openapitools.codegen.languages.features.CXFServerFeatures;
1516
import org.testng.Assert;
@@ -21,6 +22,8 @@
2122
import java.util.List;
2223
import java.util.Map;
2324
import java.nio.file.Paths;
25+
import java.util.function.Function;
26+
import java.util.stream.Collectors;
2427

2528
import static org.openapitools.codegen.TestUtils.assertFileContains;
2629
import static org.openapitools.codegen.TestUtils.assertFileNotContains;
@@ -300,4 +303,35 @@ public void testExtraAnnotations() throws IOException {
300303
TestUtils.assertExtraAnnotationFiles(outputPath + "/src/gen/java/org/openapitools/model");
301304

302305
}
306+
307+
@Test(description = "Validate that the generated equals()/hashCode() methods call super.equals() and super.hasCode()")
308+
public void testClassInheritanceEqualsHashCode() throws Exception {
309+
File output = Files.createTempDirectory("test").toFile().getCanonicalFile();
310+
output.deleteOnExit();
311+
312+
codegen.setOutputDir(output.getAbsolutePath());
313+
314+
OpenAPI openAPI = TestUtils.parseSpec("src/test/resources/3_0/allOf_no_fields.yaml");
315+
ClientOptInput input = new ClientOptInput()
316+
.openAPI(openAPI)
317+
.config(codegen);
318+
319+
DefaultGenerator generator = new DefaultGenerator();
320+
Map<String, File> files = generator.opts(input)
321+
.generate().stream()
322+
.collect(Collectors.toMap(File::getName, Function.identity()));
323+
324+
// Assert that the base class does not call super.equals() or super.hashCode()
325+
JavaFileAssert.assertThat(files.get("BaseClass.java")).assertMethod("equals").bodyNotContainsLines("super");
326+
JavaFileAssert.assertThat(files.get("BaseClass.java")).assertMethod("hashCode").bodyNotContainsLines("super");
327+
328+
// Assert that the child class does call the super.equals and super.hashCode method
329+
assertCallsSuperInEqualsAndHashcode(files.get("ChildWithProperties.java"));
330+
assertCallsSuperInEqualsAndHashcode(files.get("ChildWithoutProperties.java"));
331+
}
332+
333+
private static void assertCallsSuperInEqualsAndHashcode(File toCheck) {
334+
JavaFileAssert.assertThat(toCheck).assertMethod("equals").bodyContainsLines("super.equals");
335+
JavaFileAssert.assertThat(toCheck).assertMethod("hashCode").bodyContainsLines("super.hashCode");
336+
}
303337
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
openapi: 3.0.1
2+
info:
3+
version: 1.0.0
4+
title: Example
5+
license:
6+
name: MIT
7+
servers:
8+
- url: http://api.example.xyz/v1
9+
paths:
10+
/example:
11+
get:
12+
operationId: dummyid
13+
responses:
14+
'200':
15+
description: OK
16+
content:
17+
application/json:
18+
schema:
19+
$ref: "#/components/schemas/BaseClass"
20+
components:
21+
schemas:
22+
BaseClass:
23+
type: object
24+
properties:
25+
myDiscrim:
26+
type: string
27+
discriminator:
28+
propertyName: myDiscrim
29+
mapping:
30+
WITHPROPS: '#/components/schemas/ChildWithProperties'
31+
WITHOUTPROPS: '#/components/schemas/ChildWithoutProperties'
32+
ChildWithoutProperties:
33+
type: object
34+
allOf:
35+
- $ref: '#/components/schemas/BaseClass'
36+
ChildWithProperties:
37+
type: object
38+
allOf:
39+
- type: object
40+
properties:
41+
childProperty:
42+
type: string
43+
- $ref: '#/components/schemas/BaseClass'

samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/model/AdditionalPropertiesAnyType.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,12 @@ public boolean equals(Object o) {
6767
return false;
6868
}
6969
AdditionalPropertiesAnyType additionalPropertiesAnyType = (AdditionalPropertiesAnyType) o;
70-
return Objects.equals(this.name, additionalPropertiesAnyType.name) &&
71-
super.equals(o);
70+
return super.equals(o) && Objects.equals(name, additionalPropertiesAnyType.name);
7271
}
7372

7473
@Override
7574
public int hashCode() {
76-
return Objects.hash(name, super.hashCode());
75+
return Objects.hash(super.hashCode(), name);
7776
}
7877

7978
@Override

samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/model/AdditionalPropertiesArray.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,12 @@ public boolean equals(Object o) {
6868
return false;
6969
}
7070
AdditionalPropertiesArray additionalPropertiesArray = (AdditionalPropertiesArray) o;
71-
return Objects.equals(this.name, additionalPropertiesArray.name) &&
72-
super.equals(o);
71+
return super.equals(o) && Objects.equals(name, additionalPropertiesArray.name);
7372
}
7473

7574
@Override
7675
public int hashCode() {
77-
return Objects.hash(name, super.hashCode());
76+
return Objects.hash(super.hashCode(), name);
7877
}
7978

8079
@Override

samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/model/AdditionalPropertiesBoolean.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,12 @@ public boolean equals(Object o) {
6767
return false;
6868
}
6969
AdditionalPropertiesBoolean additionalPropertiesBoolean = (AdditionalPropertiesBoolean) o;
70-
return Objects.equals(this.name, additionalPropertiesBoolean.name) &&
71-
super.equals(o);
70+
return super.equals(o) && Objects.equals(name, additionalPropertiesBoolean.name);
7271
}
7372

7473
@Override
7574
public int hashCode() {
76-
return Objects.hash(name, super.hashCode());
75+
return Objects.hash(super.hashCode(), name);
7776
}
7877

7978
@Override

samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/model/AdditionalPropertiesClass.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -383,17 +383,17 @@ public boolean equals(Object o) {
383383
return false;
384384
}
385385
AdditionalPropertiesClass additionalPropertiesClass = (AdditionalPropertiesClass) o;
386-
return Objects.equals(this.mapString, additionalPropertiesClass.mapString) &&
387-
Objects.equals(this.mapNumber, additionalPropertiesClass.mapNumber) &&
388-
Objects.equals(this.mapInteger, additionalPropertiesClass.mapInteger) &&
389-
Objects.equals(this.mapBoolean, additionalPropertiesClass.mapBoolean) &&
390-
Objects.equals(this.mapArrayInteger, additionalPropertiesClass.mapArrayInteger) &&
391-
Objects.equals(this.mapArrayAnytype, additionalPropertiesClass.mapArrayAnytype) &&
392-
Objects.equals(this.mapMapString, additionalPropertiesClass.mapMapString) &&
393-
Objects.equals(this.mapMapAnytype, additionalPropertiesClass.mapMapAnytype) &&
394-
Objects.equals(this.anytype1, additionalPropertiesClass.anytype1) &&
395-
Objects.equals(this.anytype2, additionalPropertiesClass.anytype2) &&
396-
Objects.equals(this.anytype3, additionalPropertiesClass.anytype3);
386+
return Objects.equals(mapString, additionalPropertiesClass.mapString) &&
387+
Objects.equals(mapNumber, additionalPropertiesClass.mapNumber) &&
388+
Objects.equals(mapInteger, additionalPropertiesClass.mapInteger) &&
389+
Objects.equals(mapBoolean, additionalPropertiesClass.mapBoolean) &&
390+
Objects.equals(mapArrayInteger, additionalPropertiesClass.mapArrayInteger) &&
391+
Objects.equals(mapArrayAnytype, additionalPropertiesClass.mapArrayAnytype) &&
392+
Objects.equals(mapMapString, additionalPropertiesClass.mapMapString) &&
393+
Objects.equals(mapMapAnytype, additionalPropertiesClass.mapMapAnytype) &&
394+
Objects.equals(anytype1, additionalPropertiesClass.anytype1) &&
395+
Objects.equals(anytype2, additionalPropertiesClass.anytype2) &&
396+
Objects.equals(anytype3, additionalPropertiesClass.anytype3);
397397
}
398398

399399
@Override

samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/model/AdditionalPropertiesInteger.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,12 @@ public boolean equals(Object o) {
6767
return false;
6868
}
6969
AdditionalPropertiesInteger additionalPropertiesInteger = (AdditionalPropertiesInteger) o;
70-
return Objects.equals(this.name, additionalPropertiesInteger.name) &&
71-
super.equals(o);
70+
return super.equals(o) && Objects.equals(name, additionalPropertiesInteger.name);
7271
}
7372

7473
@Override
7574
public int hashCode() {
76-
return Objects.hash(name, super.hashCode());
75+
return Objects.hash(super.hashCode(), name);
7776
}
7877

7978
@Override

samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/model/AdditionalPropertiesNumber.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,12 @@ public boolean equals(Object o) {
6868
return false;
6969
}
7070
AdditionalPropertiesNumber additionalPropertiesNumber = (AdditionalPropertiesNumber) o;
71-
return Objects.equals(this.name, additionalPropertiesNumber.name) &&
72-
super.equals(o);
71+
return super.equals(o) && Objects.equals(name, additionalPropertiesNumber.name);
7372
}
7473

7574
@Override
7675
public int hashCode() {
77-
return Objects.hash(name, super.hashCode());
76+
return Objects.hash(super.hashCode(), name);
7877
}
7978

8079
@Override

samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/model/AdditionalPropertiesObject.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,12 @@ public boolean equals(Object o) {
6767
return false;
6868
}
6969
AdditionalPropertiesObject additionalPropertiesObject = (AdditionalPropertiesObject) o;
70-
return Objects.equals(this.name, additionalPropertiesObject.name) &&
71-
super.equals(o);
70+
return super.equals(o) && Objects.equals(name, additionalPropertiesObject.name);
7271
}
7372

7473
@Override
7574
public int hashCode() {
76-
return Objects.hash(name, super.hashCode());
75+
return Objects.hash(super.hashCode(), name);
7776
}
7877

7978
@Override

samples/server/petstore/jaxrs-datelib-j8/src/gen/java/org/openapitools/model/AdditionalPropertiesString.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,12 @@ public boolean equals(Object o) {
6767
return false;
6868
}
6969
AdditionalPropertiesString additionalPropertiesString = (AdditionalPropertiesString) o;
70-
return Objects.equals(this.name, additionalPropertiesString.name) &&
71-
super.equals(o);
70+
return super.equals(o) && Objects.equals(name, additionalPropertiesString.name);
7271
}
7372

7473
@Override
7574
public int hashCode() {
76-
return Objects.hash(name, super.hashCode());
75+
return Objects.hash(super.hashCode(), name);
7776
}
7877

7978
@Override

0 commit comments

Comments
 (0)