code: @Override
      public void postInvoke(int id, EJSDeployedSupport s) throws RemoteException {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled()) {
              Tr.entry(tc, "postInvoke");
          }
  
          // Release lock acquired if container managed concurrency control.
          if (ivContainerManagedConcurrency && s.ivLockAcquired) {
              // Get the lock type to use for the method being invoked.
              EJBMethodInfoImpl mInfo = s.methodInfo;
              LockType lockType = mInfo.ivLockType;
  
              if (lockType == LockType.READ) {
                  ivReadLock.unlock();
  
                  if (isTraceOn && tc.isDebugEnabled()) {
                      Tr.debug(tc, "postInvoke released read lock: " + ivLock.toString());
                  }
              } else {
                  ivWriteLock.unlock();
  
                  if (isTraceOn && tc.isDebugEnabled()) {
                      Tr.debug(tc, "postInvoke released write lock: " + ivLock.toString());
                  }
              }
          }
  
          if (isTraceOn && tc.isEntryEnabled()) {
              Tr.exit(tc, "postInvoke");
          }
      }
docs: Release lock acquired by preInvoke.
  
  @see com.ibm.ejs.container.BeanO#postInvoke(int, com.ibm.ejs.container.EJSDeployedSupport)