code: protected void unlockSingleton(EJSDeployedSupport s) {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "unlockSingleton: " + this + ", " + s);
  
          if (s != null && s.beanO != null) {
              try {
                  s.beanO.postInvoke(s.methodId, s);
              } catch (Throwable ex) {
                  FFDCFilter.processException(ex, CLASS_NAME + ".unlockSingleton", "305", this);
                  if (isTraceOn && tc.isDebugEnabled())
                      Tr.debug(tc, "Ignoring unexpected failure calling beanO.postInvoke: " + ex);
              }
          }
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "unlockSingleton");
      }
docs: Invoked after {@link #lockSingleton()} and timer expiration completion.
  This allows the EJB Container to release any singleton bean locks that were
  obtained prior to executing the timeout callback method. <p>
  
  This method must be called if {@link #lockSingleton()} has been called
  and returned a non-null value. <p>
  
  @param methodContext the method context returned by {@link #lockSingleton()}.