当前位置: 首页>>代码示例>>Java>>正文


Java SocketState.OPEN属性代码示例

本文整理汇总了Java中org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState.OPEN属性的典型用法代码示例。如果您正苦于以下问题:Java SocketState.OPEN属性的具体用法?Java SocketState.OPEN怎么用?Java SocketState.OPEN使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState的用法示例。


在下文中一共展示了SocketState.OPEN属性的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: event

/**
 * Process pipelined HTTP requests using the specified input and output
 * streams.
 *
 * @throws IOException error during an I/O operation
 */
@Override
public SocketState event(SocketStatus status)
    throws IOException {

    RequestInfo rp = request.getRequestProcessor();

    try {
        rp.setStage(org.apache.coyote.Constants.STAGE_SERVICE);
        if (!getAdapter().event(request, response, status)) {
            setErrorState(ErrorState.CLOSE_NOW, null);
        }
    } catch (InterruptedIOException e) {
        setErrorState(ErrorState.CLOSE_NOW, e);
    } catch (Throwable t) {
        ExceptionUtils.handleThrowable(t);
        // 500 - Internal Server Error
        response.setStatus(500);
        setErrorState(ErrorState.CLOSE_NOW, t);
        getAdapter().log(request, response, 0);
        log.error(sm.getString("http11processor.request.process"), t);
    }

    rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);

    if (getErrorState().isError() || status==SocketStatus.STOP) {
        return SocketState.CLOSED;
    } else if (!comet) {
        inputBuffer.nextRequest();
        outputBuffer.nextRequest();
        return SocketState.OPEN;
    } else {
        return SocketState.LONG;
    }
}
 
开发者ID:sunmingshuai,项目名称:apache-tomcat-7.0.73-with-comment,代码行数:40,代码来源:Http11AprProcessor.java

示例2: event

/**
 * Process pipelined HTTP requests using the specified input and output
 * streams.
 *
 * @throws IOException
 *             error during an I/O operation
 */
@Override
public SocketState event(SocketStatus status) throws IOException {

	RequestInfo rp = request.getRequestProcessor();

	try {
		rp.setStage(org.apache.coyote.Constants.STAGE_SERVICE);
		if (!getAdapter().event(request, response, status)) {
			setErrorState(ErrorState.CLOSE_NOW, null);
		}
	} catch (InterruptedIOException e) {
		setErrorState(ErrorState.CLOSE_NOW, e);
	} catch (Throwable t) {
		ExceptionUtils.handleThrowable(t);
		// 500 - Internal Server Error
		response.setStatus(500);
		setErrorState(ErrorState.CLOSE_NOW, t);
		getAdapter().log(request, response, 0);
		log.error(sm.getString("http11processor.request.process"), t);
	}

	rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);

	if (getErrorState().isError() || status == SocketStatus.STOP) {
		return SocketState.CLOSED;
	} else if (!comet) {
		inputBuffer.nextRequest();
		outputBuffer.nextRequest();
		return SocketState.OPEN;
	} else {
		return SocketState.LONG;
	}
}
 
开发者ID:how2j,项目名称:lazycat,代码行数:40,代码来源:Http11AprProcessor.java

示例3: asyncDispatch

@Override
public SocketState asyncDispatch(SocketStatus status) {

    RequestInfo rp = request.getRequestProcessor();
    try {
        rp.setStage(org.apache.coyote.Constants.STAGE_SERVICE);
        if(!getAdapter().asyncDispatch(request, response, status)) {
            setErrorState(ErrorState.CLOSE_NOW, null);
        }
        resetTimeouts();
    } catch (InterruptedIOException e) {
        setErrorState(ErrorState.CLOSE_NOW, e);
    } catch (Throwable t) {
        ExceptionUtils.handleThrowable(t);
        setErrorState(ErrorState.CLOSE_NOW, t);
        getLog().error(sm.getString("http11processor.request.process"), t);
    } finally {
        if (getErrorState().isError()) {
            // 500 - Internal Server Error
            response.setStatus(500);
            adapter.log(request, response, 0);
        }
    }

    rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);

    if (isAsync()) {
        if (getErrorState().isError()) {
            request.updateCounters();
            return SocketState.CLOSED;
        } else {
            return SocketState.LONG;
        }
    } else {
        request.updateCounters();
        if (getErrorState().isError()) {
            return SocketState.CLOSED;
        } else {
            recycle(false);
            return SocketState.OPEN;
        }
    }
}
 
开发者ID:sunmingshuai,项目名称:apache-tomcat-7.0.73-with-comment,代码行数:43,代码来源:AbstractAjpProcessor.java

示例4: event

/**
 * Process pipelined HTTP requests using the specified input and output
 * streams.
 *
 * @throws IOException error during an I/O operation
 */
@Override
public SocketState event(SocketStatus status) throws IOException {

    long soTimeout = endpoint.getSoTimeout();

    RequestInfo rp = request.getRequestProcessor();
    final NioEndpoint.KeyAttachment attach = (NioEndpoint.KeyAttachment)socketWrapper.getSocket().getAttachment();
    try {
        rp.setStage(org.apache.coyote.Constants.STAGE_SERVICE);
        if (!getAdapter().event(request, response, status)) {
            setErrorState(ErrorState.CLOSE_NOW, null);
        }
        if (!getErrorState().isError()) {
            if (attach != null) {
                attach.setComet(comet);
                if (comet) {
                    Integer comettimeout = (Integer) request.getAttribute(
                            org.apache.coyote.Constants.COMET_TIMEOUT_ATTR);
                    if (comettimeout != null) {
                        attach.setTimeout(comettimeout.longValue());
                    }
                } else {
                    //reset the timeout
                    if (keepAlive) {
                        attach.setTimeout(keepAliveTimeout);
                    } else {
                        attach.setTimeout(soTimeout);
                    }
                }

            }
        }
    } catch (InterruptedIOException e) {
        setErrorState(ErrorState.CLOSE_NOW, e);
    } catch (Throwable t) {
        ExceptionUtils.handleThrowable(t);
        // 500 - Internal Server Error
        response.setStatus(500);
        setErrorState(ErrorState.CLOSE_NOW, t);
        log.error(sm.getString("http11processor.request.process"), t);
        getAdapter().log(request, response, 0);
    }

    rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);

    if (getErrorState().isError() || status==SocketStatus.STOP) {
        return SocketState.CLOSED;
    } else if (!comet) {
        if (keepAlive) {
            inputBuffer.nextRequest();
            outputBuffer.nextRequest();
            return SocketState.OPEN;
        } else {
            return SocketState.CLOSED;
        }
    } else {
        return SocketState.LONG;
    }
}
 
开发者ID:sunmingshuai,项目名称:apache-tomcat-7.0.73-with-comment,代码行数:65,代码来源:Http11NioProcessor.java

示例5: asyncDispatch

@Override
public SocketState asyncDispatch(SocketStatus status) {

	RequestInfo rp = request.getRequestProcessor();
	try {
		rp.setStage(org.apache.coyote.Constants.STAGE_SERVICE);
		if (!getAdapter().asyncDispatch(request, response, status)) {
			setErrorState(ErrorState.CLOSE_NOW, null);
		}
		resetTimeouts();
	} catch (InterruptedIOException e) {
		setErrorState(ErrorState.CLOSE_NOW, e);
	} catch (Throwable t) {
		ExceptionUtils.handleThrowable(t);
		setErrorState(ErrorState.CLOSE_NOW, t);
		getLog().error(sm.getString("http11processor.request.process"), t);
	} finally {
		if (getErrorState().isError()) {
			// 500 - Internal Server Error
			response.setStatus(500);
			adapter.log(request, response, 0);
		}
	}

	rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);

	if (isAsync()) {
		if (getErrorState().isError()) {
			request.updateCounters();
			return SocketState.CLOSED;
		} else {
			return SocketState.LONG;
		}
	} else {
		request.updateCounters();
		if (getErrorState().isError()) {
			return SocketState.CLOSED;
		} else {
			recycle(false);
			return SocketState.OPEN;
		}
	}
}
 
开发者ID:how2j,项目名称:lazycat,代码行数:43,代码来源:AbstractAjpProcessor.java

示例6: asyncDispatch

@Override
public SocketState asyncDispatch(SocketStatus status) {

	RequestInfo rp = request.getRequestProcessor();
	try {
		rp.setStage(org.apache.coyote.Constants.STAGE_SERVICE);
		if (!getAdapter().asyncDispatch(request, response, status)) {
			setErrorState(ErrorState.CLOSE_NOW, null);
		}
		resetTimeouts();
	} catch (InterruptedIOException e) {
		setErrorState(ErrorState.CLOSE_NOW, e);
	} catch (Throwable t) {
		ExceptionUtils.handleThrowable(t);
		setErrorState(ErrorState.CLOSE_NOW, t);
		getLog().error(sm.getString("http11processor.request.process"), t);
	} finally {
		if (getErrorState().isError()) {
			// 500 - Internal Server Error
			response.setStatus(500);
			adapter.log(request, response, 0);
		}
	}

	rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);

	if (getErrorState().isError()) {
		return SocketState.CLOSED;
	} else if (isAsync()) {
		return SocketState.LONG;
	} else {
		if (!keepAlive) {
			return SocketState.CLOSED;
		} else {
			endRequest();
			getInputBuffer().nextRequest();
			getOutputBuffer().nextRequest();
			return SocketState.OPEN;
		}
	}
}
 
开发者ID:how2j,项目名称:lazycat,代码行数:41,代码来源:AbstractHttp11Processor.java

示例7: event

/**
 * Process pipelined HTTP requests using the specified input and output
 * streams.
 *
 * @throws IOException
 *             error during an I/O operation
 */
@Override
public SocketState event(SocketStatus status) throws IOException {

	long soTimeout = endpoint.getSoTimeout();

	RequestInfo rp = request.getRequestProcessor();
	final NioEndpoint.KeyAttachment attach = (NioEndpoint.KeyAttachment) socketWrapper.getSocket().getAttachment();
	try {
		rp.setStage(org.apache.coyote.Constants.STAGE_SERVICE);
		if (!getAdapter().event(request, response, status)) {
			setErrorState(ErrorState.CLOSE_NOW, null);
		}
		if (!getErrorState().isError()) {
			if (attach != null) {
				attach.setComet(comet);
				if (comet) {
					Integer comettimeout = (Integer) request
							.getAttribute(org.apache.coyote.Constants.COMET_TIMEOUT_ATTR);
					if (comettimeout != null) {
						attach.setTimeout(comettimeout.longValue());
					}
				} else {
					// reset the timeout
					if (keepAlive) {
						attach.setTimeout(keepAliveTimeout);
					} else {
						attach.setTimeout(soTimeout);
					}
				}

			}
		}
	} catch (InterruptedIOException e) {
		setErrorState(ErrorState.CLOSE_NOW, e);
	} catch (Throwable t) {
		ExceptionUtils.handleThrowable(t);
		// 500 - Internal Server Error
		response.setStatus(500);
		setErrorState(ErrorState.CLOSE_NOW, t);
		log.error(sm.getString("http11processor.request.process"), t);
		getAdapter().log(request, response, 0);
	}

	rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);

	if (getErrorState().isError() || status == SocketStatus.STOP) {
		return SocketState.CLOSED;
	} else if (!comet) {
		if (keepAlive) {
			inputBuffer.nextRequest();
			outputBuffer.nextRequest();
			return SocketState.OPEN;
		} else {
			return SocketState.CLOSED;
		}
	} else {
		return SocketState.LONG;
	}
}
 
开发者ID:how2j,项目名称:lazycat,代码行数:66,代码来源:Http11NioProcessor.java

示例8: asyncDispatch

@Override
public SocketState asyncDispatch(SocketStatus status) {

    RequestInfo rp = request.getRequestProcessor();
    try {
        rp.setStage(org.apache.coyote.Constants.STAGE_SERVICE);
        if (!getAdapter().asyncDispatch(request, response, status)) {
            setErrorState(ErrorState.CLOSE_NOW, null);
        }
        resetTimeouts();
    } catch (InterruptedIOException e) {
        setErrorState(ErrorState.CLOSE_NOW, e);
    } catch (Throwable t) {
        ExceptionUtils.handleThrowable(t);
        setErrorState(ErrorState.CLOSE_NOW, t);
        getLog().error(sm.getString("http11processor.request.process"), t);
    } finally {
        if (getErrorState().isError()) {
            // 500 - Internal Server Error
            response.setStatus(500);
            adapter.log(request, response, 0);
        }
    }

    rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);

    if (getErrorState().isError()) {
        return SocketState.CLOSED;
    } else if (isAsync()) {
        return SocketState.LONG;
    } else {
        if (!keepAlive) {
            return SocketState.CLOSED;
        } else {
            endRequest();
            getInputBuffer().nextRequest();
            getOutputBuffer().nextRequest();
            return SocketState.OPEN;
        }
    }
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:41,代码来源:AbstractHttp11Processor.java

示例9: run

@Override
public void run() {
    boolean launch = false;
    synchronized (socket) {
        try {
            SocketState state = SocketState.OPEN;

            try {
                // SSL handshake
                serverSocketFactory.handshake(socket.getSocket());
            } catch (Throwable t) {
                ExceptionUtils.handleThrowable(t);
                if (log.isDebugEnabled()) {
                    log.debug(sm.getString("endpoint.err.handshake"), t);
                }
                // Tell to close the socket
                state = SocketState.CLOSED;
            }

            if ((state != SocketState.CLOSED)) {
                if (status == null) {
                    state = handler.process(socket, SocketStatus.OPEN_READ);
                } else {
                    state = handler.process(socket,status);
                }
            }
            if (state == SocketState.CLOSED) {
                // Close socket
                if (log.isTraceEnabled()) {
                    log.trace("Closing socket:"+socket);
                }
                countDownConnection();
                try {
                    socket.getSocket().close();
                } catch (IOException e) {
                    // Ignore
                }
            } else if (state == SocketState.OPEN ||
                    state == SocketState.UPGRADING ||
                    state == SocketState.UPGRADING_TOMCAT  ||
                    state == SocketState.UPGRADED){
                socket.setKeptAlive(true);
                socket.access();
                launch = true;
            } else if (state == SocketState.LONG) {
                socket.access();
                waitingRequests.add(socket);
            }
        } finally {
            if (launch) {
                try {
                    getExecutor().execute(new SocketProcessor(socket, SocketStatus.OPEN_READ));
                } catch (RejectedExecutionException x) {
                    log.warn("Socket reprocessing request was rejected for:"+socket,x);
                    try {
                        //unable to handle connection at this time
                        handler.process(socket, SocketStatus.DISCONNECT);
                    } finally {
                        countDownConnection();
                    }


                } catch (NullPointerException npe) {
                    if (running) {
                        log.error(sm.getString("endpoint.launch.fail"),
                                npe);
                    }
                }
            }
        }
    }
    socket = null;
    // Finish up this request
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:74,代码来源:JIoEndpoint.java

示例10: doRun

private void doRun(SelectionKey key, KeyAttachment ka) {
    try {
        int handshake = -1;

        try {
            if (key != null) {
                // For STOP there is no point trying to handshake as the
                // Poller has been stopped.
                if (socket.isHandshakeComplete() ||
                        status == SocketStatus.STOP) {
                    handshake = 0;
                } else {
                    handshake = socket.handshake(
                            key.isReadable(), key.isWritable());
                    // The handshake process reads/writes from/to the
                    // socket. status may therefore be OPEN_WRITE once
                    // the handshake completes. However, the handshake
                    // happens when the socket is opened so the status
                    // must always be OPEN_READ after it completes. It
                    // is OK to always set this as it is only used if
                    // the handshake completes.
                    status = SocketStatus.OPEN_READ;
                }
            }
        }catch ( IOException x ) {
            handshake = -1;
            if ( log.isDebugEnabled() ) log.debug("Error during SSL handshake",x);
        }catch ( CancelledKeyException ckx ) {
            handshake = -1;
        }
        if ( handshake == 0 ) {
            SocketState state = SocketState.OPEN;
            // Process the request from this socket
            if (status == null) {
                state = handler.process(ka, SocketStatus.OPEN_READ);
            } else {
                state = handler.process(ka, status);
            }
            if (state == SocketState.CLOSED) {
                // Close socket and pool
                close(ka, socket, key, SocketStatus.ERROR);
            }
        } else if (handshake == -1 ) {
            close(ka, socket, key, SocketStatus.DISCONNECT);
        } else {
            ka.getPoller().add(socket, handshake);
        }
    } catch (CancelledKeyException cx) {
        socket.getPoller().cancelledKey(key, null, false);
    } catch (OutOfMemoryError oom) {
        try {
            oomParachuteData = null;
            log.error("", oom);
            if (socket != null) {
                socket.getPoller().cancelledKey(key,SocketStatus.ERROR, false);
            }
            releaseCaches();
        }catch ( Throwable oomt ) {
            try {
                System.err.println(oomParachuteMsg);
                oomt.printStackTrace();
            }catch (Throwable letsHopeWeDontGetHere){
                ExceptionUtils.handleThrowable(letsHopeWeDontGetHere);
            }
        }
    } catch (VirtualMachineError vme) {
        ExceptionUtils.handleThrowable(vme);
    }catch ( Throwable t ) {
        log.error("",t);
        if (socket != null) {
            socket.getPoller().cancelledKey(key,SocketStatus.ERROR,false);
        }
    } finally {
        socket = null;
        status = null;
        //return to cache
        if (running && !paused) {
            processorCache.offer(this);
        }
    }
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:81,代码来源:NioEndpoint.java

示例11: run

@Override
public void run() {
    boolean launch = false;
    //TODO 为什么要锁住socket 什么情况下会出现竞争socket的情况
    synchronized (socket) {
        try {
            SocketState state = SocketState.OPEN;

            try {
                // SSL handshake
                serverSocketFactory.handshake(socket.getSocket());
            } catch (Throwable t) {
                ExceptionUtils.handleThrowable(t);
                if (log.isDebugEnabled()) {
                    log.debug(sm.getString("endpoint.err.handshake"), t);
                }
                // Tell to close the socket
                state = SocketState.CLOSED;
            }

            if ((state != SocketState.CLOSED)) {
                if (status == null) {
                	//处理请求
                    state = handler.process(socket, SocketStatus.OPEN_READ);
                } else {
                    state = handler.process(socket,status);
                }
            }
            if (state == SocketState.CLOSED) {
                // Close socket
                if (log.isTraceEnabled()) {
                    log.trace("Closing socket:"+socket);
                }
                countDownConnection();
                try {
                    socket.getSocket().close();
                } catch (IOException e) {
                    // Ignore
                }
            } else if (state == SocketState.OPEN ||
                    state == SocketState.UPGRADING ||
                    state == SocketState.UPGRADING_TOMCAT  ||
                    state == SocketState.UPGRADED){
                //TODO
                socket.setKeptAlive(true);
                socket.access();
                launch = true;
            } else if (state == SocketState.LONG) {
                //TODO
                socket.access();
                waitingRequests.add(socket);
            }
        } finally {
            if (launch) {
                try {
                    getExecutor().execute(new SocketProcessor(socket, SocketStatus.OPEN_READ));
                } catch (RejectedExecutionException x) {
                    log.warn("Socket reprocessing request was rejected for:"+socket,x);
                    try {
                        //unable to handle connection at this time
                        handler.process(socket, SocketStatus.DISCONNECT);
                    } finally {
                        countDownConnection();
                    }


                } catch (NullPointerException npe) {
                    if (running) {
                        log.error(sm.getString("endpoint.launch.fail"),
                                npe);
                    }
                }
            }
        }
    }
    socket = null;
    // Finish up this request
}
 
开发者ID:sunmingshuai,项目名称:apache-tomcat-7.0.73-with-comment,代码行数:78,代码来源:JIoEndpoint.java

示例12: run

@Override
public void run() {
	boolean launch = false;
	synchronized (socket) {
		try {
			SocketState state = SocketState.OPEN;

			try {
				// SSL handshake
				serverSocketFactory.handshake(socket.getSocket());
			} catch (Throwable t) {
				ExceptionUtils.handleThrowable(t);
				if (log.isDebugEnabled()) {
					log.debug(sm.getString("endpoint.err.handshake"), t);
				}
				// Tell to close the socket
				state = SocketState.CLOSED;
			}

			if ((state != SocketState.CLOSED)) {
				if (status == null) {
					state = handler.process(socket, SocketStatus.OPEN_READ);
				} else {
					state = handler.process(socket, status);
				}
			}
			if (state == SocketState.CLOSED) {
				// Close socket
				if (log.isTraceEnabled()) {
					log.trace("Closing socket:" + socket);
				}
				countDownConnection();
				try {
					socket.getSocket().close();
				} catch (IOException e) {
					// Ignore
				}
			} else if (state == SocketState.OPEN || state == SocketState.UPGRADING
					|| state == SocketState.UPGRADING_TOMCAT || state == SocketState.UPGRADED) {
				socket.setKeptAlive(true);
				socket.access();
				launch = true;
			} else if (state == SocketState.LONG) {
				socket.access();
				waitingRequests.add(socket);
			}
		} finally {
			if (launch) {
				try {
					getExecutor().execute(new SocketProcessor(socket, SocketStatus.OPEN_READ));
				} catch (RejectedExecutionException x) {
					log.warn("Socket reprocessing request was rejected for:" + socket, x);
					try {
						// unable to handle connection at this time
						handler.process(socket, SocketStatus.DISCONNECT);
					} finally {
						countDownConnection();
					}

				} catch (NullPointerException npe) {
					if (running) {
						log.error(sm.getString("endpoint.launch.fail"), npe);
					}
				}
			}
		}
	}
	socket = null;
	// Finish up this request
}
 
开发者ID:how2j,项目名称:lazycat,代码行数:70,代码来源:JIoEndpoint.java

示例13: doRun

private void doRun(SelectionKey key, KeyAttachment ka) {
	try {
		int handshake = -1;

		try {
			if (key != null) {
				// For STOP there is no point trying to handshake as the
				// Poller has been stopped.
				if (socket.isHandshakeComplete() || status == SocketStatus.STOP) {
					handshake = 0;
				} else {
					handshake = socket.handshake(key.isReadable(), key.isWritable());
					// The handshake process reads/writes from/to the
					// socket. status may therefore be OPEN_WRITE once
					// the handshake completes. However, the handshake
					// happens when the socket is opened so the status
					// must always be OPEN_READ after it completes. It
					// is OK to always set this as it is only used if
					// the handshake completes.
					status = SocketStatus.OPEN_READ;
				}
			}
		} catch (IOException x) {
			handshake = -1;
			if (log.isDebugEnabled())
				log.debug("Error during SSL handshake", x);
		} catch (CancelledKeyException ckx) {
			handshake = -1;
		}
		if (handshake == 0) {
			SocketState state = SocketState.OPEN;
			// Process the request from this socket
			if (status == null) {
				state = handler.process(ka, SocketStatus.OPEN_READ);
			} else {
				state = handler.process(ka, status);
			}
			if (state == SocketState.CLOSED) {
				// Close socket and pool
				close(ka, socket, key, SocketStatus.ERROR);
			}
		} else if (handshake == -1) {
			close(ka, socket, key, SocketStatus.DISCONNECT);
		} else {
			ka.getPoller().add(socket, handshake);
		}
	} catch (CancelledKeyException cx) {
		socket.getPoller().cancelledKey(key, null, false);
	} catch (OutOfMemoryError oom) {
		try {
			oomParachuteData = null;
			log.error("", oom);
			if (socket != null) {
				socket.getPoller().cancelledKey(key, SocketStatus.ERROR, false);
			}
			releaseCaches();
		} catch (Throwable oomt) {
			try {
				System.err.println(oomParachuteMsg);
				oomt.printStackTrace();
			} catch (Throwable letsHopeWeDontGetHere) {
				ExceptionUtils.handleThrowable(letsHopeWeDontGetHere);
			}
		}
	} catch (VirtualMachineError vme) {
		ExceptionUtils.handleThrowable(vme);
	} catch (Throwable t) {
		log.error("", t);
		if (socket != null) {
			socket.getPoller().cancelledKey(key, SocketStatus.ERROR, false);
		}
	} finally {
		socket = null;
		status = null;
		// return to cache
		if (running && !paused) {
			processorCache.offer(this);
		}
	}
}
 
开发者ID:how2j,项目名称:lazycat,代码行数:80,代码来源:NioEndpoint.java


注:本文中的org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState.OPEN属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。