This demostrate after the children class calling super.method(), the method is altered by CPS plugin, and the context to super is lost.
When calling (new CPSGrandchild()).test()
:
Expected to see:
CPSBase construction CPSChild construction CPSGrandchild construction CPSGrandchild.test() started CPSChild.test() started CPSBase.test() CPSChild.test() done CPSGrandchild.test() done
Actual we get if we capture and ignore the error:
CPSBase construction CPSChild construction CPSGrandchild construction CPSGrandchild.test() started CPSChild.test() started CPSChild.test() started CPSChild.test() started CPSChild.test() started CPSChild.test() started CPSChild.test() started //... infinite loop