private <T> T doAction(final T graph, final UpdateFilter filter, final UpdateAction<T> action) { final Session session = session(); T retVal; beforeUpdate(graph, filter); retVal = action.run(graph, filter, session); afterUpdate(filter, session); return retVal; }