Bug 15277 Recreate test suite allows you to add the suite to itself
If you have a test suite that is also a test case (done to allow cascading tests), and recreate the test suite, you're allowed to add the suite to itself. This results in a recursive call to .suite(), which ends up causing a stack overflow when run. I'm not too sure on this, but I believe previously in this situtation the suite was added to itself a test case (new Suite(class) as opposed to class.suite()), which prevented this from happening. I do prefer this new behaviour, as it makes chaining suites together much easier (now if it only searched sub-packages for suites). This one special case just needs to be handled better.
org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/wizards/NewTestSuiteCreationWizardPage.java
}
		
		public Object[] getElements(Object parent) {
			try {
				if (parent instanceof IPackageFragment) {
					IPackageFragment pack= (IPackageFragment) parent;
					if (pack.exists()) { 
						ICompilationUnit[] cuArray= pack.getCompilationUnits();
						ArrayList typesArrayList= new ArrayList();
						for (int i= 0; i < cuArray.length; i++) {
							ICompilationUnit cu= cuArray[i];
							IType[] types= cu.getTypes();
							for (int j= 0; j < types.length; j++) {
								if (TestSearchEngine.isTestImplementor(types[j]))	
									typesArrayList.add(types[j]);
							}
						}
						return typesArrayList.toArray();
					}
				}
			} catch (JavaModelException e) {
				JUnitPlugin.log(e);
			}
			return new Object[0];
		}
		
		public void dispose() {
		}
		
		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {