com.clarkware.junitperf

## Class ThreadedTestGroup

- java.lang.Object
- - java.lang.ThreadGroup
  - - com.clarkware.junitperf.ThreadedTestGroup

All Implemented Interfaces:
  java.lang.Thread.UncaughtExceptionHandler

    public class ThreadedTestGroup
    extends java.lang.ThreadGroup

The `ThreadedTestGroup` is a `ThreadGroup` that catches and handles exceptions thrown by threads created and started by `ThreadedTest` instances.

If a thread managed by a `ThreadedTestGroup` throws an uncaught exception, then the exception is added to the current test's results and all other threads are immediately interrupted.

Author:
  Ervin Varga, Mike Clark, Clarkware Consulting, Inc.

### Constructor Summary

Constructors
Constructor and Description
`ThreadedTestGroup(Test test)` Constructs a `ThreadedTestGroup` for the specified test.

### Method Summary

Methods
`void` `setTestResult(TestResult result)` Sets the current test result.
`void` `uncaughtException(java.lang.Thread t, java.lang.Throwable e)` Called when a thread in this thread group stops because of an uncaught exception.

### Methods inherited from class java.lang.ThreadGroup

`activeCount, activeGroupCount, allowThreadSuspension, checkAccess, destroy, enumerate, enumerate, enumerate, enumerate, getMaxPriority, getName, getParent, interrupt, isDaemon, isDestroyed, list, parentOf, resume, setDaemon, setMaxPriority, stop, suspend, toString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### ThreadedTestGroup

    public ThreadedTestGroup(Test test)

Constructs a `ThreadedTestGroup` for the specified test.

Parameters:
  `test` - Current test.

### Method Detail

#### setTestResult

    public void setTestResult(TestResult result)

Sets the current test result.

Parameters:
  `result` - Test result.

#### uncaughtException

    public void uncaughtException(java.lang.Thread t,
                         java.lang.Throwable e)

Called when a thread in this thread group stops because of an uncaught exception.

If the uncaught exception is a `ThreadDeath`, then it is ignored. If the uncaught exception is an `AssertionFailedError`, then a failure is added to the current test's result. Otherwise, an error is added to the current test's result.

Specified by:
  `uncaughtException` in interface `java.lang.Thread.UncaughtExceptionHandler`
Overrides:
  `uncaughtException` in class `java.lang.ThreadGroup`
Parameters:
  `t` - Originating thread.
  `e` - Uncaught exception.