public int resend(int clientId, int originalMessageId, String message) throws CouldNotSendPacketException {
		synchronized(CONNECTION_LOCK) {
			Packet packet = Packet.createApplicationPacket(clientId, message);
			packet.setDuplicateSequenceNumber(originalMessageId);

			//if the client isn't connected then throw an exception
			if(!clients.containsKey(clientId)) {
				logger.fine("Could not resend message to client " + clientId + ": Client not connected.");
				throw new ClientNotConnectedException(clientId, packet);
			}

			logger.fine("Resending message to client " + clientId + ": " + message);
			ClientInfo client = clients.get(clientId);
			return sendPacket(packet, client);
		}
	}