public void startAuction(){
    	if((super.getOutputPort() == null) || super.getAuctionID() == -1){
    		System.err.println(this.get_name() + 
    				"Error starting the auction. " + 
    				"The output port used by the auction is null or" +
    				"the auctioneer's ID was not provided!");
    		return;
    	}
    	synchronized(syncStep){
	    	// default values
	        setClosed(false);
	
	        // broadcast a message to all bidders informing about the auction
	        MessageInformStart mia = 
	        	new MessageInformStart(super.getAuctionID(), super.getAuctionProtocol());
	        
	        broadcastMessage(mia);
	        
	        setStartingTime(GridSim.clock());
	        
			onStart(++this.currentRound);
	
			// creates events for timeout of the rounds
			for(int i=this.currentRound;i<=this.totalRound;i++){
				super.send(super.get_id(), durationOfRounds * i, 
						AuctionTags.AUCTION_TIMEOUT, new Integer(i));
			}
    	}
    }