ServletInputStreamImpl.java 文件源码

java
阅读 32 收藏 0 点赞 0 评论 0

项目:lams 作者:
@Override
public void setReadListener(final ReadListener readListener) {
    if (readListener == null) {
        throw UndertowServletMessages.MESSAGES.listenerCannotBeNull();
    }
    if (listener != null) {
        throw UndertowServletMessages.MESSAGES.listenerAlreadySet();
    }
    if (!request.isAsyncStarted()) {
        throw UndertowServletMessages.MESSAGES.asyncNotStarted();
    }

    asyncContext = request.getAsyncContext();
    listener = readListener;
    channel.getReadSetter().set(internalListener = new ServletInputStreamChannelListener());

    //we resume from an async task, after the request has been dispatched
    asyncContext.addAsyncTask(new Runnable() {
        @Override
        public void run() {
            channel.getIoThread().execute(new Runnable() {
                @Override
                public void run() {
                    channel.resumeReads();
                    internalListener.handleEvent(channel);
                }
            });
        }
    });
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号