tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From fha...@apache.org
Subject svn commit: r528837 - /tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
Date Sat, 14 Apr 2007 16:47:21 GMT
Author: fhanik
Date: Sat Apr 14 09:47:20 2007
New Revision: 528837

URL: http://svn.apache.org/viewvc?view=rev&rev=528837
Log:
remove duplicate code, cause of all my headaches

Modified:
    tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java

Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?view=diff&rev=528837&r1=528836&r2=528837
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Sat Apr 14 09:47:20
2007
@@ -1855,53 +1855,11 @@
                             
                         }
                     } else {
-                        
                         socket = (NioChannel)channel;
-                        key = socket.getIOChannel().keyFor(socket.getPoller().getSelector());
-                        int handshake = -1;
-
-                        try {
-                            if (key!=null) handshake = socket.handshake(key.isReadable(),
key.isWritable());
-                        }catch ( IOException x ) {
-                            handshake = -1;
-                            if ( log.isDebugEnabled() ) log.debug("Error during SSL handshake",x);
-                        }catch ( CancelledKeyException ckx ) {
-                            handshake = -1;
-                        }
-                        if ( handshake == 0 ) {
-                            // Process the request from this socket
-                            boolean closed = (status==null)?(handler.process(socket)==Handler.SocketState.CLOSED)
:
-                                (handler.event(socket,status)==Handler.SocketState.CLOSED);
-
-                            if (closed) {
-                                // Close socket and pool
-                                try {
-                                    KeyAttachment ka = null;
-                                    if (key!=null) {
-                                        ka = (KeyAttachment) key.attachment();
-                                        if (ka!=null) ka.setComet(false);
-                                        socket.getPoller().cancelledKey(key, SocketStatus.ERROR,
false);
-                                    }
-                                    nioChannels.offer(socket);
-                                    if ( ka!=null ) keyCache.offer(ka);
-                                }catch ( Exception x ) {
-                                    log.error("",x);
-                                }
-                            } 
-                        } else if (handshake == -1 ) {
-                            KeyAttachment ka = null;
-                            if (key!=null) {
-                                ka = (KeyAttachment) key.attachment();
-                                socket.getPoller().cancelledKey(key, SocketStatus.DISCONNECT,
false);
-                            }
-                            nioChannels.offer(socket);
-                            if ( ka!=null ) keyCache.offer(ka);
-                        } else {
-                            final SelectionKey fk = key;
-                            final int intops = handshake;
-                            final KeyAttachment ka = (KeyAttachment)fk.attachment();
-                            ka.getPoller().add(socket,intops);
-                        }
+                        SocketProcessor sc = processorCache.poll();
+                        if ( sc == null ) sc = new SocketProcessor(socket,status);
+                        else sc.reset(socket,status);
+                        sc.run();
                     }
                 }catch(CancelledKeyException cx) {
                     if (socket!=null && key!=null) socket.getPoller().cancelledKey(key,null,false);
@@ -2084,8 +2042,10 @@
                                 if (ka!=null) ka.setComet(false);
                                 socket.getPoller().cancelledKey(key, SocketStatus.ERROR,
false);
                             }
-                            nioChannels.offer(socket);
+                            if (socket!=null) nioChannels.offer(socket);
+                            socket = null;
                             if ( ka!=null ) keyCache.offer(ka);
+                            ka = null;
                         }catch ( Exception x ) {
                             log.error("",x);
                         }
@@ -2096,8 +2056,10 @@
                         ka = (KeyAttachment) key.attachment();
                         socket.getPoller().cancelledKey(key, SocketStatus.DISCONNECT, false);
                     }
-                    nioChannels.offer(socket);
+                    if (socket!=null) nioChannels.offer(socket);
+                    socket = null;
                     if ( ka!=null ) keyCache.offer(ka);
+                    ka = null;
                 } else {
                     final SelectionKey fk = key;
                     final int intops = handshake;



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message