JobTimings[] results = runJobs(new Job[] {receiver, sender});
JobResult[] results = runJobs(new Job[] {receiver, sender});  if (!checkResults(results, "Topic4")) { return; }
   public void testTopic4()   {      log.info("Running test Topic4");            warmupDestination(topicName, standardMessageSize, false, DeliveryMode.PERSISTENT, Session.SESSION_TRANSACTED);                  SenderJob sender = createDefaultSenderJob(topicName);      sender.setNumMessages(numMessages);      sender.setMsgSize(standardMessageSize);      sender.setMf(new BytesMessageMessageFactory());      sender.setTransacted(true);      sender.setTransactionSize(100);      sender.setDeliveryMode(DeliveryMode.PERSISTENT);      sender.setInitialPause(initialPause); //enough time for receiver to get ready      sender.setSlaveURL(slaveURLs[0]);            ReceiverJob receiver = createDefaultReceiverJob(topicName);            receiver.setTransacted(true);      receiver.setTransactionSize(100);      receiver.setNumMessages(numMessages);      receiver.setSlaveURL(slaveURLs[1]);            JobTimings[] results = runJobs(new Job[] {receiver, sender});            /*       * NB.       * When we calculating the total time taken from first send to last receive, there is some       * error involved due to the differences in network latency and other remoting overhead       * when sending the jobs to be executed on potentially different remote machines.       * We make the assumption that this this difference is very small compared with time taken       * to run the tests as to be negligible.       */            long totalTimeTaken = results[0].getTestTime() + results[0].getInitTime() - results[1].getInitTime();            Execution execution = createExecution("Topic4");            execution.addMeasurement(new Measurement("throughput", 1000 * (double)numMessages / totalTimeTaken));      pm.saveExecution(execution);            log.info("Test Topic4 finished");   }