code: public synchronized T get (long maxwait)
      {
          if (_count == 0) {
              try { wait(maxwait); } catch (InterruptedException e) {}
  
              // if count's still null when we pull out, we waited ourmaxwait time.
              if (_count == 0) {
                  return null;
              }
          }
  
          return get();
      }
docs: Gets the next item from the queue blocking for no longer than
  <code>maxwait</code> milliseconds waiting for an item to be added
  to the queue if it is empty at the time of invocation.