private Object handleConverterNotFound(Object source, Class<?> sourceType, Class<?> targetType) {
		if (source == null) {
			assertNotPrimitiveTargetType(sourceType, targetType);
			return null;
		}
		if (targetType.isAssignableFrom(sourceType) && targetType.isInstance(source)) {
			return source;
		}
		throw new IllegalStateException(String.format("No converter found capable of converting from type %s to type %s", sourceType, targetType));
	}