}\r
\r
/** Finish the remaining and destroy */\r
- public void close() {\r
+ public void close(TestResult testResult) {\r
synchronized (partStructs) {\r
// TODO: put a timeout\r
while (partStructs.size() != 0) {\r
thread = null;\r
partStructs.notifyAll();\r
}\r
+ postClose((TreeTestResult) testResult);\r
}\r
\r
public final void resultPartAdded(TestResult testResult,\r
/** Called when a result part has been added. */\r
protected abstract void resultPartAdded(PartStruct partStruct);\r
\r
+ /**\r
+ * Called at the end of close. Default implementation is empty. To be\r
+ * overridden.\r
+ */\r
+ protected void postClose(TreeTestResult testResult) {\r
+\r
+ }\r
+\r
public void run() {\r
while (thread != null) {\r
synchronized (partStructs) {\r