public static StackTraceElement getMarkedPoint(Class<?> clazz, String methodName) {
		mark = true;
		try {
			Method method = clazz.getDeclaredMethod(methodName);
			method.setAccessible(true);
			method.invoke(clazz.newInstance());
		} catch (IllegalArgumentException e) {
			throw new IllegalStateException(e);
		} catch (SecurityException e) {
			throw new IllegalStateException(e);
		} catch (IllegalAccessException e) {
			throw new IllegalStateException(e);
		} catch (NoSuchMethodException e) {
			throw new IllegalStateException(e);
		} catch (InstantiationException e) {
			throw new IllegalStateException(e);
		} catch (InvocationTargetException e) {
			Throwable cause = e.getCause();
			String msg = cause.getMessage();
			if (!MARKING_EXCEPTION_MESSAGE.equals(msg)) {
				throw new IllegalStateException(e);
			}
			return getCaller(clazz, null, cause.getStackTrace());
		}
		mark = false;
		throw new IllegalStateException("Special marking exception was not thrown");
	}