Skip to content

Conversation

bee0511
Copy link
Contributor

@bee0511 bee0511 commented Sep 30, 2025

What changed

Similar to #981.
Replaced containsExactly(...) with containsOnly(...) to avoid assuming deterministic field order in rows/Maps.

Why

The test failed intermittently because Map iteration order is not guaranteed. NonDex exposed this by randomizing iteration order.

How to reproduce

Run the test repeatedly with NonDex:

mvn -pl . edu.illinois:nondex-maven-plugin:2.1.7:nondex -Dtest=examples.kotlin.mybatis3.joins.JoinMapperNewSyntaxTest -Drat.skip

You will see failures like:

[ERROR] Tests run: 21, Failures: 8, Errors: 0, Skipped: 0, Time elapsed: 1.274 s <<< FAILURE! -- in examples.kotlin.mybatis3.joins.JoinMapperNewSyntaxTest
[ERROR] examples.kotlin.mybatis3.joins.JoinMapperNewSyntaxTest.testRightJoinWithAliases -- Time elapsed: 0.222 s <<< FAILURE!
java.lang.AssertionError: 

Actual and expected have the same elements but not in the same order, at index 1 actual element was:
  "ITEM_ID"=44
whereas expected element was:
  "QUANTITY"=1

	at examples.kotlin.mybatis3.joins.JoinMapperNewSyntaxTest.testRightJoinWithAliases(JoinMapperNewSyntaxTest.kt:598)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

How tested

Verified with the same NonDex runs; no further order-related failures occurred.

Tests fixed

examples.kotlin.mybatis3.joins.JoinMapperNewSyntaxTest.testFullJoinWithoutAliases
examples.kotlin.mybatis3.joins.JoinMapperNewSyntaxTest.testLeftJoinWithAliases
examples.kotlin.mybatis3.joins.JoinMapperNewSyntaxTest.testLeftJoinWithoutAliases
examples.kotlin.mybatis3.joins.JoinMapperNewSyntaxTest.testLeftJoinWithSubQuery
examples.kotlin.mybatis3.joins.JoinMapperNewSyntaxTest.testRightJoinWithAliases
examples.kotlin.mybatis3.joins.JoinMapperNewSyntaxTest.testRightJoinWithoutAliases
examples.kotlin.mybatis3.joins.JoinMapperNewSyntaxTest.testRightJoinWithSubQuery
examples.kotlin.mybatis3.joins.JoinMapperNewSyntaxTest.testSelf
examples.kotlin.mybatis3.joins.JoinMapperNewSyntaxTest.testSelfWithNewAlias
examples.kotlin.mybatis3.joins.JoinMapperNewSyntaxTest.testSelfWithNewAliasAndOverride

@jeffgbutler jeffgbutler merged commit 9a93426 into mybatis:master Oct 7, 2025
7 checks passed
@jeffgbutler
Copy link
Member

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants