-
Notifications
You must be signed in to change notification settings - Fork 51
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
fix: Detect duplicated context values in distinct values()
+ union()
+ duplicate values()
#908
Conversation
b037a49
to
a50f52d
Compare
Add a test to verify that the function removes duplicated context values from a list.
Move the equals comparison in a separate class to be reusable.
Filter duplicate list entries by using the value comparator. The equals() for list and context values doesn't work properly because of the nested structure.
Add a test to verify that the function removes duplicated context values.
Remove duplicated context entries from the concatenated list.
Add a test to verify that the function returns duplicated context values.
Return duplicated context entries from list.
a50f52d
to
a47d835
Compare
@nicpuppa please take a moment to review the changes. Thank you. 🍰 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general looks good to me 🚀
I tried to challenge a bit your solution but I'm not super confident of my Scala knowledge, so if my suggestions are wrong ignore them 😄
src/main/scala/org/camunda/feel/impl/interpreter/ValComparator.scala
Outdated
Show resolved
Hide resolved
@nicpuppa thank you for your fast review and good suggestions. 🙇 |
Backport failed for Please cherry-pick the changes locally and resolve any conflicts. git fetch origin 1.16
git worktree add -d .worktree/backport-908-to-1.16 origin/1.16
cd .worktree/backport-908-to-1.16
git switch --create backport-908-to-1.16
git cherry-pick -x 5a592bca984ed186db520ae80049de80c5ae9c3e 9c3ed24e955ea13baec89b0a2448962326bce0cd f5c5017cd86a29332beae6648bb193c260b09ada 88cf0248d6791c5b131aca1e003bddc6827ea07c 9797b74f10a1a644b7d83dc0bdd19ff225c95dc1 1e30164e289b47ac35b9ee0910c73f0a8b6c39c0 1ed648d171252ae6fd80a6cd49bf72b7b1c36144 fa45a3d250fb9f2b22a5a952e6eb329af860bdd6 0a623d5f3a443b21da47f30b0c7088a3d90baa7f a47d8352949477473616e80067ec8b3181af1445 4f78808156a506b7bb63a7339298f480f6a0f4f5 |
Backport failed for Please cherry-pick the changes locally and resolve any conflicts. git fetch origin 1.17
git worktree add -d .worktree/backport-908-to-1.17 origin/1.17
cd .worktree/backport-908-to-1.17
git switch --create backport-908-to-1.17
git cherry-pick -x 5a592bca984ed186db520ae80049de80c5ae9c3e 9c3ed24e955ea13baec89b0a2448962326bce0cd f5c5017cd86a29332beae6648bb193c260b09ada 88cf0248d6791c5b131aca1e003bddc6827ea07c 9797b74f10a1a644b7d83dc0bdd19ff225c95dc1 1e30164e289b47ac35b9ee0910c73f0a8b6c39c0 1ed648d171252ae6fd80a6cd49bf72b7b1c36144 fa45a3d250fb9f2b22a5a952e6eb329af860bdd6 0a623d5f3a443b21da47f30b0c7088a3d90baa7f a47d8352949477473616e80067ec8b3181af1445 4f78808156a506b7bb63a7339298f480f6a0f4f5 |
#21884) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.camunda.feel:feel-engine](http://www.camunda.org) ([source](https://redirect.github.com/camunda/feel-scala)) | `1.18.0-alpha1` -> `1.18.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.camunda.feel:feel-engine/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.camunda.feel:feel-engine/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.camunda.feel:feel-engine/1.18.0-alpha1/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.camunda.feel:feel-engine/1.18.0-alpha1/1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>camunda/feel-scala (org.camunda.feel:feel-engine)</summary> ### [`v1.18.0`](https://redirect.github.com/camunda/feel-scala/releases/tag/1.18.0) [Compare Source](https://redirect.github.com/camunda/feel-scala/compare/1.18.0-alpha1...1.18.0) #### What's Changed ##### Features ✨ - feat: Add built-in function to strip whitespace by [@​skayliu](https://redirect.github.com/skayliu) in [https://github.com/camunda/feel-scala/pull/826](https://redirect.github.com/camunda/feel-scala/pull/826) - feat: Add built-in function to generate a UUID string by [@​skayliu](https://redirect.github.com/skayliu) in [https://github.com/camunda/feel-scala/pull/834](https://redirect.github.com/camunda/feel-scala/pull/834) - feat: Add built-in function to encode a string as base64 by [@​sbuettner](https://redirect.github.com/sbuettner) in [https://github.com/camunda/feel-scala/pull/847](https://redirect.github.com/camunda/feel-scala/pull/847) - feat: Add built-in function to check if a list is empty by [@​skayliu](https://redirect.github.com/skayliu) in [https://github.com/camunda/feel-scala/pull/851](https://redirect.github.com/camunda/feel-scala/pull/851) - feat: Make the FeelEngineBuilder available from Java/Kotlin by [@​vicmosin](https://redirect.github.com/vicmosin) in [https://github.com/camunda/feel-scala/pull/832](https://redirect.github.com/camunda/feel-scala/pull/832) - feat: I can interrupt an expression evaluation by [@​vicmosin](https://redirect.github.com/vicmosin) in [https://github.com/camunda/feel-scala/pull/824](https://redirect.github.com/camunda/feel-scala/pull/824) ##### Fixes 🐛 - fix: Regression in string() function for string and null values by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/749](https://redirect.github.com/camunda/feel-scala/pull/749) - fix: String escape characters by [@​nicpuppa](https://redirect.github.com/nicpuppa) in [https://github.com/camunda/feel-scala/pull/750](https://redirect.github.com/camunda/feel-scala/pull/750) - fix: Double quotes in string literal are escaped by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/780](https://redirect.github.com/camunda/feel-scala/pull/780) - fix: Variable resolution for custom context by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/786](https://redirect.github.com/camunda/feel-scala/pull/786) - fix: `string()` function can handle a context with custom value types by [@​mustafadagher](https://redirect.github.com/mustafadagher) in [https://github.com/camunda/feel-scala/pull/833](https://redirect.github.com/camunda/feel-scala/pull/833) - fix: Invoke `context()` function with a list containing a custom context by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/858](https://redirect.github.com/camunda/feel-scala/pull/858) - fix: `substring()` with exceeding length by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/893](https://redirect.github.com/camunda/feel-scala/pull/893) - fix: `number()` to return null if the given string is invalid by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/892](https://redirect.github.com/camunda/feel-scala/pull/892) - fix: Return `null` if a date is invalid by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/889](https://redirect.github.com/camunda/feel-scala/pull/889) - fix: Function `context put()` works for more than two keys by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/902](https://redirect.github.com/camunda/feel-scala/pull/902) - fix: Unary-test behavior with special input variable `?` by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/887](https://redirect.github.com/camunda/feel-scala/pull/887) - fix: List operation returns null if the value is not a list by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/895](https://redirect.github.com/camunda/feel-scala/pull/895) - fix: Variable name starting with "in" by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/909](https://redirect.github.com/camunda/feel-scala/pull/909) - fix: Parse expression with NBSP character by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/914](https://redirect.github.com/camunda/feel-scala/pull/914) - fix: Detect duplicated context values in `distinct values()` + `union()` + `duplicate values()` by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/908](https://redirect.github.com/camunda/feel-scala/pull/908) ##### Dependencies 🤖 - chore(deps): bump org.apache.maven.plugins:maven-shade-plugin from 3.5.0 to 3.5.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/733](https://redirect.github.com/camunda/feel-scala/pull/733) - build: Update mvn-scalafmt plugin by [@​saig0](https://redirect.github.com/saig0) in [https://github.com/camunda/feel-scala/pull/721](https://redirect.github.com/camunda/feel-scala/pull/721) - chore(deps-dev): bump version.log4j from 2.20.0 to 2.21.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/745](https://redirect.github.com/camunda/feel-scala/pull/745) - chore(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.1.2 to 3.2.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/755](https://redirect.github.com/camunda/feel-scala/pull/755) - chore(deps-dev): bump version.log4j from 2.21.0 to 2.21.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/754](https://redirect.github.com/camunda/feel-scala/pull/754) - chore(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.1 to 3.2.2 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/760](https://redirect.github.com/camunda/feel-scala/pull/760) - chore(deps-dev): bump version.log4j from 2.21.1 to 2.22.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/764](https://redirect.github.com/camunda/feel-scala/pull/764) - chore(deps): bump org.apache.maven.plugins:maven-project-info-reports-plugin from 3.4.5 to 3.5.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/766](https://redirect.github.com/camunda/feel-scala/pull/766) - chore(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.2 to 3.2.3 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/775](https://redirect.github.com/camunda/feel-scala/pull/775) - chore(deps-dev): bump version.log4j from 2.22.0 to 2.22.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/787](https://redirect.github.com/camunda/feel-scala/pull/787) - chore(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/793](https://redirect.github.com/camunda/feel-scala/pull/793) - chore(deps): bump actions/cache from 3 to 4 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/795](https://redirect.github.com/camunda/feel-scala/pull/795) - chore(deps): bump org.apache.maven.plugins:maven-shade-plugin from 3.5.1 to 3.5.2 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/812](https://redirect.github.com/camunda/feel-scala/pull/812) - chore(deps-dev): bump version.log4j from 2.22.1 to 2.23.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/811](https://redirect.github.com/camunda/feel-scala/pull/811) - chore(deps): bump org.scala-lang:scala-library from 2.13.12 to 2.13.13 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/813](https://redirect.github.com/camunda/feel-scala/pull/813) - chore(deps-dev): bump version.log4j from 2.23.0 to 2.23.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/816](https://redirect.github.com/camunda/feel-scala/pull/816) - chore(deps): bump org.apache.maven.plugins:maven-assembly-plugin from 3.6.0 to 3.7.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/817](https://redirect.github.com/camunda/feel-scala/pull/817) - chore(deps): bump org.apache.maven.plugins:maven-assembly-plugin from 3.7.0 to 3.7.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/819](https://redirect.github.com/camunda/feel-scala/pull/819) - chore(deps): bump com.lihaoyi:fastparse\_2.13 from 3.0.2 to 3.1.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/827](https://redirect.github.com/camunda/feel-scala/pull/827) - chore(deps): bump org.apache.maven.plugins:maven-jar-plugin from 3.3.0 to 3.4.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/828](https://redirect.github.com/camunda/feel-scala/pull/828) - chore(deps): bump org.apache.maven.plugins:maven-jar-plugin from 3.4.0 to 3.4.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/837](https://redirect.github.com/camunda/feel-scala/pull/837) - chore(deps): bump org.apache.maven.plugins:maven-shade-plugin from 3.5.2 to 3.5.3 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/842](https://redirect.github.com/camunda/feel-scala/pull/842) - chore(deps): bump net.alchim31.maven:scala-maven-plugin from 4.8.1 to 4.9.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/841](https://redirect.github.com/camunda/feel-scala/pull/841) - chore(deps): bump org.scala-lang:scala-library from 2.13.13 to 2.13.14 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/845](https://redirect.github.com/camunda/feel-scala/pull/845) - chore(deps): bump net.alchim31.maven:scala-maven-plugin from 4.9.0 to 4.9.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/849](https://redirect.github.com/camunda/feel-scala/pull/849) - chore(deps): bump org.apache.maven.plugins:maven-shade-plugin from 3.5.3 to 3.6.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/862](https://redirect.github.com/camunda/feel-scala/pull/862) - chore(deps): bump com.fasterxml.uuid:java-uuid-generator from 5.0.0 to 5.1.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/863](https://redirect.github.com/camunda/feel-scala/pull/863) - chore(deps): bump org.apache.maven.plugins:maven-project-info-reports-plugin from 3.5.0 to 3.6.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/868](https://redirect.github.com/camunda/feel-scala/pull/868) - chore(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.5 to 3.3.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/866](https://redirect.github.com/camunda/feel-scala/pull/866) - chore(deps): bump org.apache.maven.plugins:maven-jar-plugin from 3.4.1 to 3.4.2 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/869](https://redirect.github.com/camunda/feel-scala/pull/869) - chore(deps): bump org.apache.maven.plugins:maven-project-info-reports-plugin from 3.6.0 to 3.6.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/871](https://redirect.github.com/camunda/feel-scala/pull/871) - chore(deps): bump net.alchim31.maven:scala-maven-plugin from 4.9.1 to 4.9.2 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/872](https://redirect.github.com/camunda/feel-scala/pull/872) - chore(deps): bump com.lihaoyi:fastparse\_2.13 from 3.1.0 to 3.1.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/875](https://redirect.github.com/camunda/feel-scala/pull/875) - chore(deps): bump org.apache.maven.plugins:maven-project-info-reports-plugin from 3.6.1 to 3.6.2 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/878](https://redirect.github.com/camunda/feel-scala/pull/878) - chore(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.3.0 to 3.3.1 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/876](https://redirect.github.com/camunda/feel-scala/pull/876) - chore(deps): bump org.apache.maven.plugins:maven-site-plugin from 3.12.1 to 3.20.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/886](https://redirect.github.com/camunda/feel-scala/pull/886) - chore(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.3.1 to 3.4.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/885](https://redirect.github.com/camunda/feel-scala/pull/885) - chore(deps): bump org.apache.maven.plugins:maven-project-info-reports-plugin from 3.6.2 to 3.7.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/894](https://redirect.github.com/camunda/feel-scala/pull/894) - chore(deps): bump org.apache.maven.plugins:maven-surefire-plugin from 3.4.0 to 3.5.0 by [@​dependabot](https://redirect.github.com/dependabot) in [https://github.com/camunda/feel-scala/pull/910](https://redirect.github.com/camunda/feel-scala/pull/910) #### New Contributors - [@​lzgabel](https://redirect.github.com/lzgabel) made their first contribution in [https://github.com/camunda/feel-scala/pull/734](https://redirect.github.com/camunda/feel-scala/pull/734) - [@​jonathanlukas](https://redirect.github.com/jonathanlukas) made their first contribution in [https://github.com/camunda/feel-scala/pull/794](https://redirect.github.com/camunda/feel-scala/pull/794) - [@​vicmosin](https://redirect.github.com/vicmosin) made their first contribution in [https://github.com/camunda/feel-scala/pull/824](https://redirect.github.com/camunda/feel-scala/pull/824) - [@​skayliu](https://redirect.github.com/skayliu) made their first contribution in [https://github.com/camunda/feel-scala/pull/826](https://redirect.github.com/camunda/feel-scala/pull/826) - [@​mustafadagher](https://redirect.github.com/mustafadagher) made their first contribution in [https://github.com/camunda/feel-scala/pull/833](https://redirect.github.com/camunda/feel-scala/pull/833) - [@​sbuettner](https://redirect.github.com/sbuettner) made their first contribution in [https://github.com/camunda/feel-scala/pull/847](https://redirect.github.com/camunda/feel-scala/pull/847) - [@​andromaqui](https://redirect.github.com/andromaqui) made their first contribution in [https://github.com/camunda/feel-scala/pull/870](https://redirect.github.com/camunda/feel-scala/pull/870) **Full Changelog**: camunda/feel-scala@1.17.0...1.18.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/camunda/camunda). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiYXV0b21lcmdlIl19-->
Description
Fixes the detection of duplicated context values in the functions:
distinct values()
union()
duplicate values()
Related issues
closes #771
closes #772
closes #773