public void run() throws Exception {
   Thread[] threads = new Thread[THREADS];
   for (int i = 0; i < THREADS; i++) {
     try {
       threads[i] = new Thread(peerFactory.newClient(this), "Client " + i);
     } catch (Exception e) {
       e.printStackTrace();
       return;
     }
     threads[i].start();
   }
   try {
     for (int i = 0; i < THREADS; i++) {
       threads[i].join();
     }
   } catch (InterruptedException e) {
     setFailed();
     e.printStackTrace();
   }
   if (failed) {
     throw new Exception("*** Test '" + peerFactory.getName() + "' failed ***");
   } else {
     System.out.println("Test '" + peerFactory.getName() + "' completed successfully");
   }
 }
 public final void run() {
   while (true) {
     TestParameters params = cipherTest.getTest();
     if (params == null) {
       // no more tests
       break;
     }
     if (params.isEnabled() == false) {
       System.out.println("Skipping disabled test " + params);
       continue;
     }
     try {
       runTest(params);
       System.out.println("Passed " + params);
     } catch (Exception e) {
       cipherTest.setFailed();
       System.out.println("** Failed " + params + "**");
       e.printStackTrace();
     }
   }
 }