}
   public Object get() throws InterruptedException {      synchronized (lock) {         // wait until there is something to read         while (isEmpty())            lock.wait();         /**          * @todo here is the throttling code to look at          *          * just something here to try.  OK it works but we need to be a little          *     more intelligent with the throttling.          */         if (vector.size() >= 20) {            vector.remove(0);            vector.remove(0);            vector.remove(0);            vector.remove(0);            vector.remove(0);            vector.remove(0);            vector.remove(0);            vector.remove(0);            vector.remove(0);            vector.remove(0);            vector.remove(0);            vector.remove(0);            vector.remove(0);            vector.remove(0);            vector.remove(0);            vector.remove(0);            vector.remove(0);            vector.remove(0);//            System.out.println(vector.size());         }            // we have the lock and state we're seeking         return vector.remove(0);      }   }