code: public void run()
     {
        final ClassLoader myClassLoader = SecurityActions.getClassLoader(getClass());
        SecurityActions.setThreadContextClassLoader(myClassLoader);
  
        while (true)
        {
           boolean empty = false;
  
           while (!empty)
           {
              FillRequest fr = null;
  
              synchronized (pools)
              {
                 empty = pools.isEmpty();
                 if (!empty)
                    fr = pools.removeFirst();
              }
  
              if (!empty)
              {
                 fr.getManagedConnectionPool().fillTo(fr.getFillSize());
              }
           }
  
           try 
           {
              synchronized (pools)
              {
                 while (pools.isEmpty())
                 {
                    pools.wait();                        
                 }
              }
           }
           catch (InterruptedException ie)
           {
              Thread.currentThread().interrupt();
              return;
           }
        }
     }
docs: {@inheritDoc}