You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2012/12/10 19:24:49 UTC

svn commit: r1419629 - in /camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty: NettyHelper.java handlers/ServerChannelHandler.java

Author: davsclaus
Date: Mon Dec 10 18:24:48 2012
New Revision: 1419629

URL: http://svn.apache.org/viewvc?rev=1419629&view=rev
Log:
Polished camel-netty

Modified:
    camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyHelper.java
    camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java

Modified: camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyHelper.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyHelper.java?rev=1419629&r1=1419628&r2=1419629&view=diff
==============================================================================
--- camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyHelper.java (original)
+++ camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyHelper.java Mon Dec 10 18:24:48 2012
@@ -84,7 +84,6 @@ public final class NettyHelper {
      */
     public static void writeBodyAsync(Logger log, Channel channel, SocketAddress remoteAddress, Object body,
                                       Exchange exchange, ChannelFutureListener listener) {
-        // the write operation is asynchronous. Use future to wait until the session has been written
         ChannelFuture future;
         if (remoteAddress != null) {
             if (log.isDebugEnabled()) {
@@ -98,18 +97,20 @@ public final class NettyHelper {
             future = channel.write(body);
         }
 
-        future.addListener(listener);
+        if (listener != null) {
+            future.addListener(listener);
+        }
     }
 
     /**
-     * Closes the given channel
+     * Closes the given channel asynchronously
      *
      * @param channel the channel to close
      */
     public static void close(Channel channel) {
         if (channel != null) {
             LOG.trace("Closing channel: {}", channel);
-            channel.close().awaitUninterruptibly();
+            channel.close();
         }
     }
 

Modified: camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java?rev=1419629&r1=1419628&r2=1419629&view=diff
==============================================================================
--- camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java (original)
+++ camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java Mon Dec 10 18:24:48 2012
@@ -27,7 +27,6 @@ import org.apache.camel.component.netty.
 import org.apache.camel.component.netty.NettyHelper;
 import org.apache.camel.component.netty.NettyPayloadHelper;
 import org.apache.camel.util.CamelLogger;
-import org.apache.camel.util.ExchangeHelper;
 import org.apache.camel.util.IOHelper;
 import org.jboss.netty.channel.ChannelFuture;
 import org.jboss.netty.channel.ChannelFutureListener;
@@ -67,6 +66,7 @@ public class ServerChannelHandler extend
         if (LOG.isTraceEnabled()) {
             LOG.trace("Channel closed: {}", e.getChannel());
         }
+        consumer.getAllChannels().remove(e.getChannel());
     }
 
     @Override
@@ -134,7 +134,7 @@ public class ServerChannelHandler extend
 
     private void sendResponse(MessageEvent messageEvent, Exchange exchange) throws Exception {
         Object body;
-        if (ExchangeHelper.isOutCapable(exchange)) {
+        if (exchange.hasOut()) {
             body = NettyPayloadHelper.getOut(consumer.getEndpoint(), exchange);
         } else {
             body = NettyPayloadHelper.getIn(consumer.getEndpoint(), exchange);
@@ -194,14 +194,13 @@ public class ServerChannelHandler extend
         public void operationComplete(ChannelFuture future) throws Exception {
             // if it was not a success then thrown an exception
             if (!future.isSuccess()) {
-                future.getCause().printStackTrace();
                 Exception e = new CamelExchangeException("Cannot write response to " + remoteAddress, exchange, future.getCause());
                 consumer.getExceptionHandler().handleException(e);
             }
 
             // should channel be closed after complete?
             Boolean close;
-            if (ExchangeHelper.isOutCapable(exchange)) {
+            if (exchange.hasOut()) {
                 close = exchange.getOut().getHeader(NettyConstants.NETTY_CLOSE_CHANNEL_WHEN_COMPLETE, Boolean.class);
             } else {
                 close = exchange.getIn().getHeader(NettyConstants.NETTY_CLOSE_CHANNEL_WHEN_COMPLETE, Boolean.class);