throw (RuntimeException) e.getCause().getCause();
throw (RuntimeException) e.getCause();
    public Collection run(List<ObjectChange> changes) throws ExcepcaoPersistencia, ClassNotFoundException,            IllegalAccessException, NoSuchMethodException, InstantiationException {        beforeRun(changes);                Hashtable<ObjectKey, Object> objects = new Hashtable<ObjectKey, Object>();        for (ObjectChange change : changes) {            try {                Object object = getObject(objects, change);                processChange(change, object);            } catch (InvocationTargetException e) {                if (e.getCause() instanceof RuntimeException) {                    throw (RuntimeException) e.getCause().getCause();                }            }        }                afterRun(objects.values());                return objects.values();    }