protected Object reifyCall(
      String className,
      String methodName,
      Class<?>[] parameterTypes,
      Object[] effectiveParameters,
      short priority) {
    try {
      return this.proxy.reify(
          MethodCall.getComponentMethodCall(
              Class.forName(className).getDeclaredMethod(methodName, parameterTypes),
              effectiveParameters,
              null,
              (String) null,
              null,
              priority));

      // functional interface name is null
    } catch (NoSuchMethodException e) {
      throw new ProActiveRuntimeException(e.toString());
    } catch (ClassNotFoundException e) {
      throw new ProActiveRuntimeException(e.toString());
    } catch (Throwable e) {
      throw new ProActiveRuntimeException(e.toString());
    }
  }
 @Override
 public int hashCode() {
   // reified as a standard invocation (not a component one)
   Object result;
   try {
     result =
         this.proxy.reify(
             MethodCall.getMethodCall(
                 Class.forName(Object.class.getName())
                     .getDeclaredMethod("hashCode", new Class<?>[] {}),
                 new Object[] {},
                 (Map<TypeVariable<?>, Class<?>>) null));
     return ((Integer) result).intValue();
   } catch (SecurityException e) {
     throw new ProActiveRuntimeException(e.toString());
   } catch (NoSuchMethodException e) {
     throw new ProActiveRuntimeException(e.toString());
   } catch (ClassNotFoundException e) {
     throw new ProActiveRuntimeException(e.toString());
   } catch (Throwable e) {
     throw new ProActiveRuntimeException(e.toString());
   }
 }