If MethodHandles.filterArguments is used to apply two or more non-null filters to a method handle, those filters will be run in right-to-left order in the OpenJDK implementation. The javadoc indicates that these filters are run in normal argument order, left-to-right; IBM's implementation correctly implements this specification. If we have unit tests for this, they are probably using filter functions with no side effects, so it is impossible to detect the error.
Suggested fix: Run the accumulation loop backwards over the array of filters. And put in a regression test with side-effecting filters.
Links:
http://mail.openjdk.java.net/pipermail/mlvm-dev/2018-January/006789.html
http://mail.openjdk.java.net/pipermail/mlvm-dev/2018-January/006798.html