Skip to content

IllegalArgumentException: "Invalid ref...", while having attribute with the same name in different 'components' sections #68

@NikitaMarushkai

Description

@NikitaMarushkai

Hello! Thanks for the nice util, but I faced one problem that doesn't make me possible to use this. I have the following API definition sections:

components:
  parameters:
    gender:
      name: gender
      description: Customer gender
      in: query
      schema:
        $ref: '#/components/schemas/Gender'
  schemas:
    Gender:
      type: string
      enum:
      - MALE
      - FEMALE
      - NOT_SPECIFIED

And the comparision of versions fails with the following exception:

java.lang.IllegalArgumentException: Invalid ref: #/components/schemas/Gender
	at com.qdesrame.openapi.diff.utils.RefPointer.getRefName(RefPointer.java:69) ~[openapi-diff-1.2.0.jar:na]
	at com.qdesrame.openapi.diff.utils.RefPointer.resolveRef(RefPointer.java:20) ~[openapi-diff-1.2.0.jar:na]
	at com.qdesrame.openapi.diff.compare.ParametersDiff.diff(ParametersDiff.java:46) ~[openapi-diff-1.2.0.jar:na]
	at com.qdesrame.openapi.diff.compare.OperationDiff.diff(OperationDiff.java:34) ~[openapi-diff-1.2.0.jar:na]
	at com.qdesrame.openapi.diff.compare.PathDiff.diff(PathDiff.java:31) ~[openapi-diff-1.2.0.jar:na]
	at com.qdesrame.openapi.diff.compare.PathsDiff.lambda$diff$2(PathsDiff.java:53) ~[openapi-diff-1.2.0.jar:na]
	at java.util.LinkedHashMap$LinkedKeySet.forEach(LinkedHashMap.java:559) ~[na:1.8.0_191]
	at com.qdesrame.openapi.diff.compare.PathsDiff.diff(PathsDiff.java:36) ~[openapi-diff-1.2.0.jar:na]
	at com.qdesrame.openapi.diff.compare.OpenApiDiff.compare(OpenApiDiff.java:92) ~[openapi-diff-1.2.0.jar:na]
	at com.qdesrame.openapi.diff.compare.OpenApiDiff.compare(OpenApiDiff.java:66) ~[openapi-diff-1.2.0.jar:na]
	at com.qdesrame.openapi.diff.OpenApiCompare.fromSpecifications(OpenApiCompare.java:99) ~[openapi-diff-1.2.0.jar:na]
	at com.qdesrame.openapi.diff.OpenApiCompare.fromContents(OpenApiCompare.java:42) ~[openapi-diff-1.2.0.jar:na]
	at com.qdesrame.openapi.diff.OpenApiCompare.fromContents(OpenApiCompare.java:30) ~[openapi-diff-1.2.0.jar:na]

I suppose that this happening because of my parameters and schemas sections have attributes with the same name.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions