public void readResponse() throws IOException, InterruptedException, ClassPathOutOfSyncException {
		Object readObject;
		try {
			readObject = readObject();
		} catch (ClassNotFoundException e) {
			throw new ClassPathOutOfSyncException(e);
		}

		if(readObject != null && readObject instanceof Transport) {
			Transport transport = (Transport) readObject;
			String id = transport.getId();
			ResultFuture resultFuture = pendingRequests.get(id);
			if(resultFuture == null) {
				LOGGER.warn("Received response for unknown ID");
			} else {
				//noinspection unchecked
				resultFuture.setResult(transport.getObject());
			}
		} else {
			throw new UnexpectedResultException("Expected result of " + Transport.class.getCanonicalName() + " but was " + (readObject == null ? "null" : readObject.getClass().getCanonicalName()));
		}
	}