public Object invoke(ObjectName name, String operationName, Object[] params, String[] signature) throws InstanceNotFoundException, MBeanException, ReflectionException {
AbstractName abstractName = toAbstractName(name);
try {
return kernel.invoke(abstractName, operationName, params, signature);
} catch (NoSuchOperationException e) {
throw new ReflectionException(new NoSuchMethodException(e.getMessage()));
} catch (GBeanNotFoundException e) {
if(name.equals(e.getGBeanName())) {
throw new InstanceNotFoundException(name.getCanonicalName());
}
throw new MBeanException(e);