public void body() {
    	logger.log(Level.INFO, super.get_name() + " is starting...");
        
        boolean success = sendFailures();
        
        if(success) {
        	
            Sim_event ev = new Sim_event();
        	while (Sim_system.running()) {
                super.sim_get_next(ev);

                // if the simulation finishes then exit the loop
                if (ev.get_tag() == GridSimTags.END_OF_SIMULATION) {
                    break;
                }
              
            }
        }
        else {
        	logger.log(Level.SEVERE, super.get_name() + " was unable to send the failures.");
        }

        // shut down all the entities, including GridStatistics entity since
        // we used it to record certain events.
        shutdownGridStatisticsEntity();
        shutdownUserEntity();
        terminateIOEntities();

        logger.log(Level.INFO, super.get_name() + " is exiting...");
    }