protected boolean retryReflectiveCallUsingAccessibleObject(Object[] args, Method subscriptionMethod, Object obj,
           IllegalAccessException e, String message) {
      boolean accessibleTriedAndFailed = false;
      if (subscriptionMethod != null) {
         AccessibleObject[] accessibleMethod = {subscriptionMethod};
         try {
            AccessibleObject.setAccessible(accessibleMethod, true);
            Object returnValue = subscriptionMethod.invoke(obj, args);
            return Boolean.valueOf(returnValue+"");
         } catch (SecurityException ex) {
            accessibleTriedAndFailed = true;
         } catch (InvocationTargetException e1) {
            throw new RuntimeException(message, e);
         } catch (IllegalAccessException e1) {
            throw new RuntimeException(message, e);
         }
      }
      if (accessibleTriedAndFailed) {
         message = message + ".  An attempt was made to make the method accessible, but the SecurityManager denied the attempt.";
      }
      throw new RuntimeException(message, e);
   }