final Object invokeM(M m,Object target,Object[] args,Object cookie) throws MBeanException, ReflectionException {
  try {
    return invokeM2(m,target,args,cookie);
  }
 catch (  InvocationTargetException e) {
    unwrapInvocationTargetException(e);
    throw new RuntimeException(e);
  }
catch (  IllegalAccessException e) {
    throw new ReflectionException(e,e.toString());
  }
}

final Object invokeM ( M m , Object target , Object [ ] args , Object cookie ) throws MBeanException , ReflectionException { try { return invokeM2 ( m , target , args , cookie ) ; } catch ( InvocationTargetException e ) { unwrapInvocationTargetException ( e ) ; throw new RuntimeException ( e ) ; } catch ( IllegalAccessException e ) { throw new ReflectionException ( e , e . toString ( ) ) ; } }
invoke the given m on the given target with the given args and cookie . wrap exceptions appropriately .
