public void onClose(int round){
		boolean stop = false;
		synchronized (syncIncr) {
			if (!shouldDecrease || round == super.getNumberOfRounds()) {
				stop = true;
			} else {
				shouldDecrease = false;
				double decrease = ((super.getMaxPrice() - super.getMinPrice()) 
						/ (super.getNumberOfRounds() - 1));
				super.setCurrentPrice(super.getCurrentPrice() - decrease);
			}

			if (stop) {
				if (bestBid != null) {
					double price = bestBid.getPrice();
					if (price <= super.getReservePrice()) {
						super.setFinalPrice(price);
						super.setWinner(bestBid.getBidder());
					} else {
						super.setFinalPrice(super.getCurrentPrice());
					}
				} else {
					super.setFinalPrice(super.getCurrentPrice());
				}
				closeAuction();
			}
		}
	}