code: public boolean isLowOnResources()
      {
          int spare=getMaxThreads()-getThreads();
          int lr = _lowResources>0?_lowResources:getMinThreads();
          boolean low = (spare+getIdleThreads())<lr;
          
          if (low && !_isLow)
          {
              log.info("LOW ON THREADS (("+
                        getMaxThreads()+"-"+
                        getThreads()+"+"+
                        getIdleThreads()+")<"+
                        getMinThreads()+") on "+ this);
              _warned=System.currentTimeMillis();
              _isLow=true;
          }
          else if (!low && _isLow)
          {
              if (System.currentTimeMillis()-_warned > 1000)
              {
                  _isOut=false;
                  _isLow=false;
              }
          }
          return low;
      }
docs: Get the lowOnResource state of the listener.
  A SocketListener is considered low on resources if the total number of
  the number of idle threads is less than the lowResource value (or minThreads if not set)
  @return True if low on idle threads.