public synchronized void endThreadAccess() {
        Object requestingUser = Thread.currentThread();
        if (m_oCurrentUser == null) {
            this.notifyAll();
        } else if (m_oCurrentUser == requestingUser) {
            m_oCurrentUser = null;
            this.notifyAll();
        } else { // Some other Thread is currently using us
            if (log.isLoggable(Level.SEVERE)) {
                log.severe(
                        "ERROR:  Thread finished using SeekableInput, but it wasn't locked by that Thread\n" +
                        "        Thread: " + Thread.currentThread() + "\n" +
                        "        Locking Thread: " + m_oCurrentUser + "\n" +
                        "        SeekableInput: " + this);
            }
        }
    }