Object target = invocation.getTargetObject();
if(!(target instanceof SessionSynchronization))
throw new IllegalArgumentException("target not an instance of SessionSynchronization " + target);
SessionSynchronization synch = (SessionSynchronization) invocation.getTargetObject();
// fake tx semantics
synch.afterBegin();
Object result = invocation.invokeNext();
synch.beforeCompletion();
synch.afterCompletion(true);
return result;
}