package edu.ualberta.med.biobank.common.wrappers.util; import java.util.List; import org.springframework.aop.framework.Advised; public class ProxyUtil { public static <E> E convertProxyToObject(E obj) { if (obj == null) { return null; } while (obj != null && obj instanceof Advised) { Advised proxy = (Advised) obj; try { @SuppressWarnings("unchecked") E target = (E) proxy.getTargetSource().getTarget(); obj = target; } catch (Exception e) { e.printStackTrace(); } } return obj; } public static <E> void unproxy(List<E> list) { for (int i = 0, n = list.size(); i < n; i++) { E orig = list.get(i); E unproxied = convertProxyToObject(orig); list.set(i, unproxied); } } }