}
@Override
public Object processInvocation(InterceptorContext context) throws Exception {
final Method invokedMethod = context.getMethod();
final ComponentViewInstance componentViewInstance = context.getPrivateData(ComponentViewInstance.class);
// For a lifecycle interception, the ComponentViewInstance (and the invoked business interface) will be null.
// On a normal method invocation, the invoked business interface will be obtained from the ComponentViewInstance
final Class<?> invokedBusinessInterface = componentViewInstance == null ? null : componentViewInstance.getViewClass();
Object[] parameters = context.getParameters();
SessionInvocationContext sessionInvocationContext = new CustomSessionInvocationContext(lifecycleCallback, context, invokedBusinessInterface, invokedMethod, parameters);
context.putPrivateData(InvocationContext.class, sessionInvocationContext);
CurrentInvocationContext.push(sessionInvocationContext);
try {