log.debug("run: IdleRemover notifying pools, interval: " + interval);
if (log!=null) log.debug("run: IdleRemover notifying pools, interval: " + interval);
            public void run()            {               synchronized (pools)               {                  while (true)                  {                     try                      {                        pools.wait(interval);                        log.debug("run: IdleRemover notifying pools, interval: " + interval);                        for (Iterator i = pools.iterator(); i.hasNext(); )                         {                           ((ManagedConnectionPool)i.next()).removeTimedOut();                        } // end of if ()                        next = System.currentTimeMillis() + interval;                        if (next < 0)                         {                           next = Long.MAX_VALUE;                              } // end of if ()                     }                     catch (InterruptedException ie)                     {                        log.info("run: IdleRemover has been interrupted, returning");                        return;                       } // end of try-catch                                          } // end of while ()                                 }            }