code: @Override
      final public boolean isCallerInRole(String roleName) {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled()) {
              Tr.entry(tc, "isCallerInRole, role = " + roleName + ", state = " + StateStrs[state]);
          }
  
          if (state == METHOD_READY) // d571981
          {
              boolean inRole = super.isCallerInRole(roleName, ivEjbInstance);
              if (isTraceOn && tc.isEntryEnabled()) {
                  Tr.exit(tc, "isCallerInRole: " + inRole);
              }
              return inRole;
          } else {
              throw new IllegalStateException("For Singleton, isCallerInRole only allowed while in METHOD_READY state");
          }
      }
docs: /*
  (non-Javadoc)
  
  @see com.ibm.ejs.container.BeanO#isCallerInRole(java.lang.String)