cleanupChannel(CleanupReason.ABRUPT);
closeChannel(CloseReason.ABRUPT);
    public void autoClose(long millis) {        Runnable close = new Runnable() {            public void run() {                if (mDebug) mLog.debug("auto closing connection");                synchronized (mLock) {                    try {                        mConnectionHandler.handleAutoClose();                    } catch (Throwable t) {                        cleanupChannel(CleanupReason.ABRUPT);                    }                }            }        };        synchronized (mAutoCloseLock) {            if (mAutoCloseHandle != null) {                cancelAutoClose();            }            if (mDebug) mLog.debug("creating auto close timer to fire after " + millis + "ms");            mAutoCloseHandle = mAutoCloseExecutor.schedule(close, millis, TimeUnit.MILLISECONDS);        }    }