Component (Container aContainer, Component aComponent) { try { if (!myRecursionGuard.add("getComponentAfter")) return null; return traverse(aContainer, aComponent, param -> myWrappee.getComponentAfter(param.first, param.second)); } finally { myRecursionGuard.clear(); } }