Class MvelOverloadFailureReproduction

java.lang.Object
org.broadleafcommerce.test.common.rule.MvelOverloadFailureReproduction

public class MvelOverloadFailureReproduction extends Object
Run the test case as a java main application in a new JVM. This seems to be required to cause the variability in the ordering of the call to Class#getMethods on SelectizeCollectionUtils. For our case to cause the compiled expression corruption, we must end up with an invocation of Class#getMethods that returns the #intersection(String, Iterable) Method positioned in the methods array before the #intersection(Iterable, Iterable) version of the method. Once you have a JVM in place, the ordering seems consistent, so you have to start a new JVM to hope to see the variable ordering phenomenon. See MvelTestUtils for the examples of the overloaded static intersection method implementations.

See Class.getMethods() for mention of the undetermined ordering behavior.
Author:
Jeff Fischer
  • Constructor Details

    • MvelOverloadFailureReproduction

      public MvelOverloadFailureReproduction()
  • Method Details

    • main

      public static void main(String[] items)