Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Possible inconsistence between isEmpty and pop in Channels class (V2)? #792

Closed
Tracked by #809
adalbertocajueiro opened this issue Jun 19, 2023 · 4 comments
Closed
Tracked by #809
Labels
bug Something isn't working

Comments

@adalbertocajueiro
Copy link

Describe the bug

I have faced a small problem when obtaining the the channels interface from a specification (spec.allChannels()). It returns a ChannelsInterface object which extends Collection which extends Array. When invoking method pop() the state change occurs as expected. However, if we remove all elements through many pop() invocations, the methods isEmpty() does not returns true because it checks the length of the internal collection field, instead of the elements (in the array sense). Is this a consistence problem or I'm using methods wrongly?

How to Reproduce

Steps to reproduce the issue. Attach all resources that can help us understand the issue:

  • Load the content of an asyncapi specification containing channels into a variable content
  • Obtain the APIDocument by parsing the content: var parsedObject = parse.parse(content)
  • Get the channels: var channels = parsedObject.document.allChannels()
  • test the code to check if it has an infinite loop:
    while(this.channels!.isEmpty() > 0){
    this.channels?.pop()
    }

Expected behavior

channels becomes clear and the above loop stops. I have changed the use of .isEmpty() by .length and everything worked.

@adalbertocajueiro adalbertocajueiro added the bug Something isn't working label Jun 19, 2023
@github-actions
Copy link

Welcome to AsyncAPI. Thanks a lot for reporting your first issue. Please check out our contributors guide and the instructions about a basic recommended setup useful for opening a pull request.
Keep in mind there are also other channels you can use to interact with AsyncAPI community. For more details check out this issue.

@github-actions
Copy link

This issue has been automatically marked as stale because it has not had recent activity 😴

It will be closed in 120 days if no further activity occurs. To unstale this issue, add a comment with a detailed explanation.

There can be many reasons why some specific issue has no activity. The most probable cause is lack of time, not lack of interest. AsyncAPI Initiative is a Linux Foundation project not owned by a single for-profit company. It is a community-driven initiative ruled under open governance model.

Let us figure out together how to push this issue forward. Connect with us through one of many communication channels we established here.

Thank you for your patience ❤️

@github-actions github-actions bot added the stale label Oct 18, 2023
@smoya
Copy link
Member

smoya commented Dec 6, 2023

Is this still valid? We should definitely test it.

@github-actions github-actions bot removed the stale label Dec 7, 2023
@adalbertocajueiro
Copy link
Author

adalbertocajueiro commented Dec 7, 2023

Hi smoya. I have closed this issue. Instead of traversing the asyncapi object I moved to use the asyncapi/parser tool, which is not affected by it. Many thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants