Skip to content
This repository was archived by the owner on Oct 20, 2023. It is now read-only.
This repository was archived by the owner on Oct 20, 2023. It is now read-only.

MatchError with empty Schema #112

Description

@yevgenius

When trying to compile from openapi spec of a modified Airbyte client (original here),
Hitting the below error. It seems like it's parsing some schema object without any definitions, but there aren't any in the spec file.
Using version 0.2.2

[error] scala.MatchError: class Schema {
[error]     type: null
[error]     format: null
[error]     $ref: null
[error]     description: null
[error]     title: null
[error]     multipleOf: null
[error]     maximum: null
[error]     exclusiveMaximum: null
[error]     minimum: null
[error]     exclusiveMinimum: null
[error]     maxLength: null
[error]     minLength: null
[error]     pattern: null
[error]     maxItems: null
[error]     minItems: null
[error]     uniqueItems: null
[error]     maxProperties: null
[error]     minProperties: null
[error]     required: null
[error]     not: null
[error]     properties: null
[error]     additionalProperties: null
[error]     nullable: null
[error]     readOnly: null
[error]     writeOnly: null
[error]     example: null
[error]     externalDocs: null
[error]     deprecated: null
[error]     discriminator: null
[error]     xml: null
[error] } (of class io.swagger.v3.oas.models.media.Schema)
[error] 	at io.github.ghostbuster91.sttp.client3.openapi.SafeSchema$.apply(SafeOpenApi.scala:241)
[error] 	at io.github.ghostbuster91.sttp.client3.openapi.SafeArraySchema.items(SafeOpenApi.scala:174)
[error] 	at io.github.ghostbuster91.sttp.client3.ReferenceCollector.collectFromSchemaRec(ReferenceCollector.scala:58)
[error] 	at io.github.ghostbuster91.sttp.client3.ReferenceCollector.$anonfun$collectFromSchemaRec$1(ReferenceCollector.scala:52)
[error] 	at scala.collection.TraversableOnce$folder$1.apply(TraversableOnce.scala:196)
[error] 	at scala.collection.TraversableOnce$folder$1.apply(TraversableOnce.scala:194)
[error] 	at scala.collection.Iterator.foreach(Iterator.scala:943)
[error] 	at scala.collection.Iterator.foreach$(Iterator.scala:943)
[error] 	at scala.collection.AbstractIterator.foreach(Iterator.scala:1431)
[error] 	at scala.collection.MapLike$DefaultValuesIterable.foreach(MapLike.scala:214)
[error] 	at scala.collection.TraversableOnce.foldLeft(TraversableOnce.scala:199)
[error] 	at scala.collection.TraversableOnce.foldLeft$(TraversableOnce.scala:192)
[error] 	at scala.collection.AbstractTraversable.foldLeft(Traversable.scala:108)
[error] 	at io.github.ghostbuster91.sttp.client3.ReferenceCollector.collectFromSchemaRec(ReferenceCollector.scala:51)
[error] 	at io.github.ghostbuster91.sttp.client3.ReferenceCollector.$anonfun$collectFromSchemaRec$1(ReferenceCollector.scala:52)
[error] 	at scala.collection.TraversableOnce$folder$1.apply(TraversableOnce.scala:196)
[error] 	at scala.collection.TraversableOnce$folder$1.apply(TraversableOnce.scala:194)
[error] 	at scala.collection.Iterator.foreach(Iterator.scala:943)
[error] 	at scala.collection.Iterator.foreach$(Iterator.scala:943)
[error] 	at scala.collection.AbstractIterator.foreach(Iterator.scala:1431)
[error] 	at scala.collection.MapLike$DefaultValuesIterable.foreach(MapLike.scala:214)
[error] 	at scala.collection.TraversableOnce.foldLeft(TraversableOnce.scala:199)
[error] 	at scala.collection.TraversableOnce.foldLeft$(TraversableOnce.scala:192)
[error] 	at scala.collection.AbstractTraversable.foldLeft(Traversable.scala:108)
[error] 	at io.github.ghostbuster91.sttp.client3.ReferenceCollector.collectFromSchemaRec(ReferenceCollector.scala:51)
[error] 	at io.github.ghostbuster91.sttp.client3.ReferenceCollector.$anonfun$collectFromSchemaRec$1(ReferenceCollector.scala:52)
[error] 	at scala.collection.TraversableOnce$folder$1.apply(TraversableOnce.scala:196)
[error] 	at scala.collection.TraversableOnce$folder$1.apply(TraversableOnce.scala:194)
[error] 	at scala.collection.immutable.HashMap$HashMapValues.$anonfun$foreach$2(HashMap.scala:158)
[error] 	at scala.collection.immutable.HashMap$HashMap1.foreachEntry(HashMap.scala:401)
[error] 	at scala.collection.immutable.HashMap$HashTrieMap.foreachEntry(HashMap.scala:735)
[error] 	at scala.collection.immutable.HashMap$HashMapValues.foreach(HashMap.scala:158)
[error] 	at scala.collection.TraversableOnce.foldLeft(TraversableOnce.scala:199)
[error] 	at scala.collection.TraversableOnce.foldLeft$(TraversableOnce.scala:192)
[error] 	at scala.collection.AbstractTraversable.foldLeft(Traversable.scala:108)
[error] 	at io.github.ghostbuster91.sttp.client3.ReferenceCollector.collectFromSchemaRec(ReferenceCollector.scala:51)
[error] 	at io.github.ghostbuster91.sttp.client3.ReferenceCollector.collectFromSchema(ReferenceCollector.scala:37)
[error] 	at io.github.ghostbuster91.sttp.client3.ReferenceCollector.$anonfun$collectResponses$2(ReferenceCollector.scala:25)
[error] 	at scala.collection.immutable.List.flatMap(List.scala:366)
[error] 	at io.github.ghostbuster91.sttp.client3.ReferenceCollector.collectResponses(ReferenceCollector.scala:25)
[error] 	at io.github.ghostbuster91.sttp.client3.ReferenceCollector.collectSingleOperation(ReferenceCollector.scala:20)
[error] 	at io.github.ghostbuster91.sttp.client3.ReferenceCollector.$anonfun$collect$1(ReferenceCollector.scala:7)
[error] 	at scala.collection.TraversableLike.$anonfun$flatMap$1(TraversableLike.scala:293)
[error] 	at scala.collection.immutable.HashSet$HashSet1.foreach(HashSet.scala:335)
[error] 	at scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:1111)
[error] 	at scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:1111)
[error] 	at scala.collection.TraversableLike.flatMap(TraversableLike.scala:293)
[error] 	at scala.collection.TraversableLike.flatMap$(TraversableLike.scala:290)
[error] 	at scala.collection.AbstractTraversable.flatMap(Traversable.scala:108)
[error] 	at io.github.ghostbuster91.sttp.client3.ReferenceCollector.collect(ReferenceCollector.scala:7)
[error] 	at io.github.ghostbuster91.sttp.client3.Codegen.createModel(Codegen.scala:80)
[error] 	at io.github.ghostbuster91.sttp.client3.Codegen.generate(Codegen.scala:41)
[error] 	at io.github.ghostbuster91.sttp.client3.Codegen.$anonfun$generate$3(Codegen.scala:28)
[error] 	at scala.util.Either.map(Either.scala:353)
[error] 	at io.github.ghostbuster91.sttp.client3.Codegen.generate(Codegen.scala:28)
[error] 	at io.github.ghostbuster91.sttp.client3.SbtCodegenAdapter.processSingleFile(SbtCodegenAdapter.scala:30)
[error] 	at io.github.ghostbuster91.sttp.client3.SttpOpenApiCodegenPlugin$autoImport$.$anonfun$generateSources$3(SttpOpenApiCodegenPlugin.scala:57)
[error] 	at scala.collection.TraversableOnce$folder$1.apply(TraversableOnce.scala:196)
[error] 	at scala.collection.TraversableOnce$folder$1.apply(TraversableOnce.scala:194)
[error] 	at scala.collection.immutable.Set$Set1.foreach(Set.scala:141)
[error] 	at scala.collection.TraversableOnce.foldLeft(TraversableOnce.scala:199)
[error] 	at scala.collection.TraversableOnce.foldLeft$(TraversableOnce.scala:192)
[error] 	at scala.collection.AbstractTraversable.foldLeft(Traversable.scala:108)
[error] 	at io.github.ghostbuster91.sttp.client3.SttpOpenApiCodegenPlugin$autoImport$.$anonfun$generateSources$2(SttpOpenApiCodegenPlugin.scala:55)
[error] 	at sbt.util.FileFunction$.$anonfun$cached$1(FileFunction.scala:80)
[error] 	at sbt.util.FileFunction$.$anonfun$cached$4(FileFunction.scala:153)
[error] 	at sbt.util.Difference.apply(Tracked.scala:414)
[error] 	at sbt.util.Difference.apply(Tracked.scala:394)
[error] 	at sbt.util.FileFunction$.$anonfun$cached$3(FileFunction.scala:149)
[error] 	at sbt.util.Difference.apply(Tracked.scala:414)
[error] 	at sbt.util.Difference.apply(Tracked.scala:389)
[error] 	at sbt.util.FileFunction$.$anonfun$cached$2(FileFunction.scala:148)
[error] 	at io.github.ghostbuster91.sttp.client3.SttpOpenApiCodegenPlugin$autoImport$.$anonfun$generateSources$1(SttpOpenApiCodegenPlugin.scala:66)
[error] 	at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] 	at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)
[error] 	at sbt.std.Transform$$anon$4.work(Transform.scala:68)
[error] 	at sbt.Execute.$anonfun$submit$2(Execute.scala:282)
[error] 	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23)
[error] 	at sbt.Execute.work(Execute.scala:291)
[error] 	at sbt.Execute.$anonfun$submit$1(Execute.scala:282)
[error] 	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error] 	at sbt.CompletionService$$anon$2.call(CompletionService.scala:64)
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[error] 	at java.base/java.lang.Thread.run(Thread.java:833)
[error] (airbyteClient / Compile / managedSources) scala.MatchError: class Schema {
[error]     type: null
[error]     format: null
[error]     $ref: null
[error]     description: null
[error]     title: null
[error]     multipleOf: null
[error]     maximum: null
[error]     exclusiveMaximum: null
[error]     minimum: null
[error]     exclusiveMinimum: null
[error]     maxLength: null
[error]     minLength: null
[error]     pattern: null
[error]     maxItems: null
[error]     minItems: null
[error]     uniqueItems: null
[error]     maxProperties: null
[error]     minProperties: null
[error]     required: null
[error]     not: null
[error]     properties: null
[error]     additionalProperties: null
[error]     nullable: null
[error]     readOnly: null
[error]     writeOnly: null
[error]     example: null
[error]     externalDocs: null
[error]     deprecated: null
[error]     discriminator: null
[error]     xml: null
[error] } (of class io.swagger.v3.oas.models.media.Schema)`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions