@Override
	public void run() {
		ParkingPlace parkingPlace = null;
		for (IParking parking : parkings) {
			LOG.info(toString() + " trying to park on " + parking + "!!!");
			try {
				parkingPlace = take(parking);
				using(parkingPlace);
			} catch (ParkingException e) {
				LOG.info(toString() + "---Parking failed--- " + e.getMessage());
			} finally {
				if (parkingPlace != null) {
					try {
						leave(parking, parkingPlace);
					} catch (ParkingException e) {
						LOG.error("Place returning failed", e);
					}
					break;
				}
			}
		}
		if (parkingPlace == null) {
			LOG.warn(toString() + " was't parked!");
		}
	}