@@ -851,13 +851,21 @@ private void flattenProperties(OpenAPI openAPI, Map<String, Schema> properties,
851851 } else {
852852 LOGGER .debug ("Schema not yet handled in model resolver: {}" , inner );
853853 }
854- } else if (ModelUtils .isComposedSchema (property )) { // oneOf, anyOf, etc
855- String propertyModelName = resolveModelName (property .getTitle (), path + "_" + key );
856- gatherInlineModels (property , propertyModelName );
857- propertyModelName = addSchemas (propertyModelName , property );
858- Schema schema = new Schema ().$ref (propertyModelName );
859- schema .setRequired (property .getRequired ());
860- propsToUpdate .put (key , schema );
854+ } else if (ModelUtils .isComposedSchema (property )) { // oneOf, anyOf, allOf etc
855+ if (property .getAllOf () != null && property .getAllOf ().size () == 1 // allOf with a single item
856+ && (property .getOneOf () == null || property .getOneOf ().isEmpty ()) // not oneOf
857+ && (property .getAnyOf () == null || property .getAnyOf ().isEmpty ()) // not anyOf
858+ && (property .getProperties () == null || property .getProperties ().isEmpty ())) { // no property
859+ // don't do anything if it's allOf with a single item
860+ LOGGER .debug ("allOf with a single item (which can be handled by default codegen) skipped by inline model resolver: {}" , property );
861+ } else {
862+ String propertyModelName = resolveModelName (property .getTitle (), path + "_" + key );
863+ gatherInlineModels (property , propertyModelName );
864+ propertyModelName = addSchemas (propertyModelName , property );
865+ Schema schema = new Schema ().$ref (propertyModelName );
866+ schema .setRequired (property .getRequired ());
867+ propsToUpdate .put (key , schema );
868+ }
861869 } else {
862870 LOGGER .debug ("Schema not yet handled in model resolver: {}" , property );
863871 }
0 commit comments