code: private void detectNestedInvocations(Method daoMethod) {
  		if (!Config.IN_PRODUCTION && !daoMethod.getName().startsWith("read")) {
  			StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
  			for (StackTraceElement stackTraceElement : stackTraceElements) {
  				if (daoMethod.getDeclaringClass().getName().equals(stackTraceElement.getClassName()) &&
  						!daoMethod.getName().equals(stackTraceElement.getMethodName())) {
  					throw new RuntimeException(Utils.
  							formatMessage("Method {0}.{1}() was invoked from another method in the same "
  							+ "class - {2}.{3}(). DAO implementations should avoid this as it causes objects to be "
  							+ "indexed and cached twice per request.",
  							daoMethod.getDeclaringClass().getSimpleName(), daoMethod.getName(),
  							stackTraceElement.getClassName(), stackTraceElement.getMethodName()));
  				}
  			}
  		}
  	}
docs: Try and detect if a DAO method is called from another public DAO method, annotated with {@link Indexed} or
  {@link Cached}. It causes that method to be intercepted twice and objects will be indexed/cached twice.
  @param daoMethod invoked dao method