log(msg, Project.MSG_INFO);
throw new TestSkippedException(msg, true);
}
log("Performing " + toString(), Project.MSG_INFO);
BuildException error = null;
AssertionWarningException warning = null;
Iterator iter = children.iterator();
while (iter.hasNext()) {
Task currentTask = (Task)iter.next();
try {
currentTask.perform();
} catch (TestSkippedException ex) {
currentTask = unwrapTask(currentTask);
if (!(currentTask instanceof TestGroupTask)) {
throw ex;
}
} catch (AssertionWarningException ex) {
if (ex.getMessage() != null) {
log(ex.getMessage(), Project.MSG_ERR);
} else {
StringWriter sw = new StringWriter();
ex.printStackTrace(new PrintWriter(sw, true));
log(sw.toString(), Project.MSG_ERR);
}
if (warning == null) {
TaskRegistry.setErrorProperty(ex);
currentTask = unwrapTask(currentTask);
if (currentTask instanceof ServiceDef) {
String name = ((ServiceDef)currentTask).getName();
warning = new AssertionWarningException("Warning in Service " + name, ex);
} else if (currentTask instanceof ServiceInstance) {
String name = currentTask.getTaskName();
warning = new AssertionWarningException("Warning in Service " + name, ex);
} else if (currentTask instanceof TestGroupTask) {
String name = ((TestGroupTask)currentTask).getName();
if (currentTask instanceof TestCaseTask) {
warning = new AssertionWarningException("Warning in Testcase " + name,
ex);
} else if (failOnError()) {
warning = new AssertionWarningException("Warning in Testgroup " + name,
ex);
}
} else {
String name = currentTask.getTaskName();
warning = new AssertionWarningException("Warning in Task " + name, ex);
}
}
} catch (Exception ex) {
if (ex instanceof BuildException && ex.getMessage() != null) {
log(ex.getMessage(), Project.MSG_ERR);