boolean () { if (myDefectFound) { return true; } //Test suit fails if any of its tests fails final List<? extends SMTestProxy> children = new ArrayList<SMTestProxy>(mySuiteProxy.getChildren()); for (SMTestProxy child : children) { if (child.isDefect()) { myDefectFound = true; return true; } } //cannot cache because one of child tests may fail in future return false; }