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 (logger.isLoggable(Level.SEVERE)) {
                    logger.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);
                }
            }
        }