docs: public int waitForChange()
      {
          if (m_lTimeOut <= 0)
              return TIMEOUT_ERROR;   // Timed out                
          m_bWaiting = false;        
          synchronized(this)
          {
              long lStartTime = System.currentTimeMillis();
              try {
                  m_bWaiting = true;
                  this.wait(m_lTimeOut);
              } catch (InterruptedException e) {
                  e.printStackTrace();
              }
              m_lTimeOut = m_lTimeOut - (System.currentTimeMillis() - lStartTime);
          }
          if (m_bWaiting == false)
              return DBConstants.NORMAL_RETURN;   // Was interrupted by a field change
          m_bWaiting = false;        
          return TIMEOUT_ERROR;   // Timed out
      }