docs: public boolean isCallerInRole(String roleName, Object bean)
      {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
          {
              Tr.entry(tc, "isCallerInRole, role = " + roleName
                           + " EJB = " + bean); //182011
          }
  
          // Check whether security is enabled or not. Note, the subclasses
          // do override this method to do additional processing and then they
          // call super.isCallerInRole which usually causes this code to
          // execute.  However, the subclass will throw IllegalStateException
          // (e.g. MessageDrivenBeanO) if not valid to call isCallerInRole.
          boolean inRole; //d444696.2
          EJBSecurityCollaborator<?> securityCollaborator = container.ivSecurityCollaborator;
          if (securityCollaborator == null) //d444696.2
          {
              // Security is disabled, so return false for 1.x and 2.x modules to
              // ensure pre EJB 3 applications see no behavior change. For EJB 3 modules
              // or later, return true so that we are consistent with web container.
              BeanMetaData bmd = home.beanMetaData;
              if (isTraceOn && tc.isDebugEnabled())
              {
                  Tr.debug(tc, "isCallerInRole called with security disabled for EJB module version = "
                               + bmd.ivModuleVersion);
              }
              inRole = (bmd.ivModuleVersion >= BeanMetaData.J2EE_EJB_VERSION_3_0);
          }
          else //d444696.2
          {
              // Pass null EJSDeployedSupport for callback methods.            d739835
              EJSDeployedSupport s = bean == null ? null : EJSContainer.getMethodContext();
  
              try
              {
                  inRole = isCallerInRole(securityCollaborator, roleName, s);
              } catch (RuntimeException ex)
              {
                  FFDCFilter.processException(ex, CLASS_NAME + ".isCallerInRole", "982", this);
                  if (isTraceOn && tc.isEntryEnabled())
                      Tr.exit(tc, "isCallerInRole collaborator throwing", ex);
                  throw ex;
              }
          }
  
          if (isTraceOn && tc.isEntryEnabled()) //d444696.2
          {
              Tr.exit(tc, "isCallerInRole returning " + inRole);
          }
          return inRole; //d444696.2
      }