Skip to content

Commit 589c3f2

Browse files
author
Bruno Freudensprung
committed
fix issue 1454 (almost?) completely: fix unit test
1 parent 185c902 commit 589c3f2

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

modules/swagger-parser-v3/src/main/java/io/swagger/v3/parser/util/ResolverFully.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,7 @@ public Schema resolveSchema(Schema schema) {
380380

381381
if (aggregateCombinators && (hasAllOf || adjacent)) {
382382
Schema combinedModel = SchemaTypeUtil.createSchema(composedSchema.getType(), composedSchema.getFormat());
383+
// combinedModel.setDefault(composedSchema.getDefault());
383384
Set<Object> examples = new HashSet<>();
384385
Set<Object> defaultValues = new HashSet<>();
385386

@@ -476,7 +477,6 @@ private void aggregateSchemaCombinators(ComposedSchema sourceSchema, Schema targ
476477
List<Schema> schemasToAggregate, Set<Object> examples, Set<Object> defaultValues) {
477478

478479
Set<String> requiredProperties = new HashSet<>();
479-
480480
for (Schema innerModel : schemasToAggregate) {
481481
Schema resolved = resolveSchema(innerModel);
482482
Map<String, Schema> properties = resolved.getProperties();
@@ -500,7 +500,11 @@ private void aggregateSchemaCombinators(ComposedSchema sourceSchema, Schema targ
500500
if (resolved.getExample() != null) {
501501
examples.add(resolved.getExample());
502502
}
503-
defaultValues.add(resolved.getDefault());
503+
if (sourceSchema.getDefault() != null && resolved.getDefault() == null)
504+
defaultValues.add(sourceSchema.getDefault());
505+
else
506+
defaultValues.add(resolved.getDefault());
507+
504508
if (resolved.getExtensions() != null) {
505509
Map<String, Object> extensions = resolved.getExtensions();
506510
for (String key : extensions.keySet()) {

modules/swagger-parser-v3/src/test/java/io/swagger/v3/parser/util/OpenAPIDeserializerTest.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2765,13 +2765,14 @@ public void testIssue1454AllOfDefaultValue(){
27652765
.get("enumProperty")
27662766
.getDefault(), "SCHEMA_DEFAULT");
27672767

2768+
OpenAPIV3Parser parser2 = new OpenAPIV3Parser();
27682769
ParseOptions options = new ParseOptions();
27692770
options.setResolve(true);
27702771
options.setResolveFully(true);
27712772
options.setResolveCombinators(true);
2772-
result = parser.readContents(json, null, options);
2773-
openAPI = result.getOpenAPI();
2774-
assertEquals(((Map<String, Schema>)openAPI.getComponents()
2773+
SwaggerParseResult result2 = parser2.readContents(json, null, options);
2774+
OpenAPI openAPI2 = result2.getOpenAPI();
2775+
assertEquals(((Map<String, Schema>)openAPI2.getComponents()
27752776
.getSchemas()
27762777
.get("SchemaWithDefaultAndEnum")
27772778
.getProperties())

0 commit comments

Comments
 (0)