本文整理匯總了Java中org.jboss.netty.channel.ExceptionEvent.getCause方法的典型用法代碼示例。如果您正苦於以下問題:Java ExceptionEvent.getCause方法的具體用法?Java ExceptionEvent.getCause怎麽用?Java ExceptionEvent.getCause使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類org.jboss.netty.channel.ExceptionEvent
的用法示例。
在下文中一共展示了ExceptionEvent.getCause方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: exceptionCaught
import org.jboss.netty.channel.ExceptionEvent; //導入方法依賴的package包/類
@Override
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e)
throws Exception {
Channel ch = e.getChannel();
Throwable cause = e.getCause();
if (cause instanceof TooLongFrameException) {
sendError(ctx, BAD_REQUEST);
return;
} else if (cause instanceof IOException) {
if (cause instanceof ClosedChannelException) {
LOG.debug("Ignoring closed channel error", cause);
return;
}
String message = String.valueOf(cause.getMessage());
if (IGNORABLE_ERROR_MESSAGE.matcher(message).matches()) {
LOG.debug("Ignoring client socket close", cause);
return;
}
}
LOG.error("Shuffle error: ", cause);
if (ch.isConnected()) {
LOG.error("Shuffle error " + e);
sendError(ctx, INTERNAL_SERVER_ERROR);
}
}
示例2: exceptionCaught
import org.jboss.netty.channel.ExceptionEvent; //導入方法依賴的package包/類
@Override
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent
e) throws Exception {
log.debug("[exceptionCaught]: " + e.toString());
if (e.getCause() instanceof ReadTimeoutException) {
log.debug("Disconnecting device {} due to read timeout", e.getChannel().getRemoteAddress());
return;
} else if (e.getCause() instanceof ClosedChannelException) {
log.debug("Channel for OSPF {} already closed", e.getChannel().getRemoteAddress());
} else if (e.getCause() instanceof IOException) {
log.debug("Disconnecting OSPF {} due to IO Error: {}", e.getChannel().getRemoteAddress(),
e.getCause().getMessage());
} else if (e.getCause() instanceof OspfParseException) {
OspfParseException errMsg = (OspfParseException) e.getCause();
byte errorCode = errMsg.errorCode();
byte errorSubCode = errMsg.errorSubCode();
log.debug("Error while parsing message from OSPF {}, ErrorCode {}",
e.getChannel().getRemoteAddress(), errorCode);
} else if (e.getCause() instanceof RejectedExecutionException) {
log.debug("Could not process message: queue full");
} else {
log.debug("Error while processing message from OSPF {}, {}",
e.getChannel().getRemoteAddress(), e.getCause().getMessage());
}
}
示例3: exceptionCaught
import org.jboss.netty.channel.ExceptionEvent; //導入方法依賴的package包/類
@Override
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
if (e.getCause() instanceof ReadTimeoutException) {
log.debug("Disconnecting device {} due to read timeout", e.getChannel().getRemoteAddress());
return;
} else if (e.getCause() instanceof ClosedChannelException) {
log.debug("Channel for ISIS {} already closed", e.getChannel().getRemoteAddress());
} else if (e.getCause() instanceof IOException) {
log.debug("Disconnecting ISIS {} due to IO Error: {}", e.getChannel().getRemoteAddress(),
e.getCause().getMessage());
} else if (e.getCause() instanceof IsisParseException) {
IsisParseException errMsg = (IsisParseException) e.getCause();
byte errorCode = errMsg.errorCode();
byte errorSubCode = errMsg.errorSubCode();
log.debug("Error while parsing message from ISIS {}, ErrorCode {}",
e.getChannel().getRemoteAddress(), errorCode);
} else if (e.getCause() instanceof RejectedExecutionException) {
log.debug("Could not process message: queue full");
} else {
log.debug("Error while processing message from ISIS {}, {}",
e.getChannel().getRemoteAddress(), e.getCause().getMessage());
}
}
示例4: exceptionCaught
import org.jboss.netty.channel.ExceptionEvent; //導入方法依賴的package包/類
/**
* Called by netty when an exception happens in one of the netty threads
* (mostly due to what we do in the netty threads)
*/
@Override
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
Throwable t = e.getCause();
if (t instanceof CorruptedFrameException || t instanceof TooLongFrameException) {
LOG.error("Corrupted fram recieved from bookie: " + e.getChannel().getRemoteAddress());
return;
}
if (t instanceof IOException) {
// these are thrown when a bookie fails, logging them just pollutes
// the logs (the failure is logged from the listeners on the write
// operation), so I'll just ignore it here.
return;
}
LOG.fatal("Unexpected exception caught by bookie client channel handler", t);
// Since we are a library, cant terminate App here, can we?
}
示例5: exceptionCaught
import org.jboss.netty.channel.ExceptionEvent; //導入方法依賴的package包/類
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
// logger.error("exceptionCaught", e.getCause());
if (e.getCause() instanceof ReadTimeoutException) {
if (logger.isTraceEnabled()) {
logger.trace("Connection timeout [{}]", ctx.getChannel().getRemoteAddress());
}
ctx.getChannel().close();
} else {
if (!isLoaded) {
// ignore
return;
}
if (!NetworkExceptionHelper.isCloseConnectionException(e.getCause())) {
// logger.warn("Caught exception while handling client http traffic, closing connection {}", e.getCause(), ctx.getChannel());
ctx.getChannel().close();
} else {
// logger.debug("Caught exception while handling client http traffic, closing connection {}", e.getCause(), ctx.getChannel());
ctx.getChannel().close();
}
}
}
示例6: exceptionCaught
import org.jboss.netty.channel.ExceptionEvent; //導入方法依賴的package包/類
@Override
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e)
throws Exception {
Throwable te = e.getCause();
if (te instanceof java.io.IOException) {// 網絡異常,也有可能是soLinger參數引起
return;
}
logger.error("Unexpected exception from downstream.{}", e.getCause());
Channel c = e.getChannel();
try {
if (c.isWritable()) {
RpcResponse res = new RpcResponse();
res.setReturnFlag(RpcConst.ERR_CODE_SERVER_CHANNEL_EXCEPTION);
res.setReturnMsg(logger.getStackTraceInfo(e.getCause()));
c.write(res);
}
} finally {
c.close();
}
// super.exceptionCaught(ctx, e);
}
示例7: exceptionCaught
import org.jboss.netty.channel.ExceptionEvent; //導入方法依賴的package包/類
@SuppressWarnings("unchecked")
@Override
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
HttpContext<R, T> httpContext = httpContextMap.get(ctx.getChannel());
try {
if (httpContext != null && httpContext.getListener() != null) {
httpContext.getListener().onFailure(e.getCause());
} else {
Throwable t = e.getCause();
logger.error(t.getMessage(), t);
}
} finally {
ctx.getChannel().close();
httpContextMap.remove(ctx.getChannel());
}
}
示例8: exceptionCaught
import org.jboss.netty.channel.ExceptionEvent; //導入方法依賴的package包/類
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
Throwable cause = e.getCause();
// do not print exception if it is BindException.
// we are trying to search available port below 1024. It is not good to
// print a flood
// of error logs during the searching.
if (cause instanceof java.net.BindException) {
return;
}
LOG.error("Exception on connection to " + getRemoteAddress(), e.getCause());
// close the channel unless we are connecting and it is
// NotYetConnectedException
if (!((cause instanceof NotYetConnectedException)
&& _connection.getConnectionState().equals(Connection.State.CONNECTING))) {
ctx.getChannel().close();
}
}
示例9: exceptionCaught
import org.jboss.netty.channel.ExceptionEvent; //導入方法依賴的package包/類
@Override
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
Throwable t = e.getCause();
if (this.channelHandler != null) {
this.channelHandler.onError(this.createContext(t));
}
e.getChannel().close();
if (t instanceof IOException) {
this.ioErrorLogger.error(Text.ERROR_AT_SERVER, t);
} else {
this.logger.error(Text.ERROR_AT_SERVER, t);
}
}
示例10: exceptionCaught
import org.jboss.netty.channel.ExceptionEvent; //導入方法依賴的package包/類
@Override
public void exceptionCaught( ChannelHandlerContext ctx, ExceptionEvent e ) throws Exception
{
Channel ch = e.getChannel( ) ;
Throwable cause = e.getCause( ) ;
if( cause instanceof TooLongFrameException )
{
sendError( ctx, BAD_REQUEST ) ;
return ;
}
cause.printStackTrace( ) ;
if( ch.isConnected( ) )
{
sendError( ctx, INTERNAL_SERVER_ERROR ) ;
}
}
示例11: exceptionCaught
import org.jboss.netty.channel.ExceptionEvent; //導入方法依賴的package包/類
@Override
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
final Throwable error = e.getCause();
if (error instanceof IOException // Connection reset etc
|| error instanceof ClosedChannelException || error instanceof IllegalArgumentException) { // Invalid
// protocol
// format
// -
// bots
// etc
if (LOG.isDebugEnabled())
LOG.debug("Exception from HttpTunnel send handler: " + error);
return;
}
if (LOG.isWarnEnabled())
LOG.warn("Exception from HttpTunnel send handler: " + error);
}
示例12: exceptionCaught
import org.jboss.netty.channel.ExceptionEvent; //導入方法依賴的package包/類
@Override
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
final Throwable error = e.getCause();
if (error instanceof IOException // Connection reset etc
|| error instanceof ClosedChannelException || error instanceof IllegalArgumentException) { // Invalid
// protocol
// format
// -
// bots
// etc
if (LOG.isDebugEnabled())
LOG.debug("Exception from HttpTunnel send handler: " + error);
return;
}
if (LOG.isWarnEnabled())
LOG.warn("Exception from HttpTunnel accepted channel handler: " + error);
}
示例13: exceptionCaught
import org.jboss.netty.channel.ExceptionEvent; //導入方法依賴的package包/類
@Override
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e)
throws Exception {
RpcRequest request = (RpcRequest) ctx.getAttachment();
if (e.getCause() instanceof ReadTimeoutException) {
// The connection was OK but there was no traffic for last period.
logger.warn("Disconnecting due to no inbound traffic");
} else {
logger.error("", e);
}
e.getChannel().close().awaitUninterruptibly();
}
示例14: exceptionCaught
import org.jboss.netty.channel.ExceptionEvent; //導入方法依賴的package包/類
protected void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
if (!lifecycle.started()) {
// ignore
return;
}
if (isCloseConnectionException(e.getCause())) {
logger.trace("close connection exception caught on transport layer [{}], disconnecting from relevant node", e.getCause(), ctx.getChannel());
// close the channel, which will cause a node to be disconnected if relevant
ctx.getChannel().close();
disconnectFromNodeChannel(ctx.getChannel(), e.getCause());
} else if (isConnectException(e.getCause())) {
logger.trace("connect exception caught on transport layer [{}]", e.getCause(), ctx.getChannel());
// close the channel as safe measure, which will cause a node to be disconnected if relevant
ctx.getChannel().close();
disconnectFromNodeChannel(ctx.getChannel(), e.getCause());
} else if (e.getCause() instanceof CancelledKeyException) {
logger.trace("cancelled key exception caught on transport layer [{}], disconnecting from relevant node", e.getCause(), ctx.getChannel());
// close the channel as safe measure, which will cause a node to be disconnected if relevant
ctx.getChannel().close();
disconnectFromNodeChannel(ctx.getChannel(), e.getCause());
} else if (e.getCause() instanceof SizeHeaderFrameDecoder.HttpOnTransportException) {
// in case we are able to return data, serialize the exception content and sent it back to the client
if (ctx.getChannel().isOpen()) {
ChannelBuffer buffer = ChannelBuffers.wrappedBuffer(e.getCause().getMessage().getBytes(Charsets.UTF_8));
ChannelFuture channelFuture = ctx.getChannel().write(buffer);
channelFuture.addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future) throws Exception {
future.getChannel().close();
}
});
}
} else {
logger.warn("exception caught on transport layer [{}], closing connection", e.getCause(), ctx.getChannel());
// close the channel, which will cause a node to be disconnected if relevant
ctx.getChannel().close();
disconnectFromNodeChannel(ctx.getChannel(), e.getCause());
}
}
示例15: exceptionCaught
import org.jboss.netty.channel.ExceptionEvent; //導入方法依賴的package包/類
@Override
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e)
throws Exception {
Channel ch = e.getChannel();
Throwable cause = e.getCause();
if (LOG.isDebugEnabled())
LOG.debug(cause.getMessage());
ch.close().addListener(ChannelFutureListener.CLOSE);
}