tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From fha...@apache.org
Subject svn commit: r419896 - in /tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport: AbstractSender.java nio/NioReceiver.java nio/NioReplicationThread.java nio/PooledParallelSender.java
Date Fri, 07 Jul 2006 14:28:09 GMT
Author: fhanik
Date: Fri Jul  7 07:28:08 2006
New Revision: 419896

URL: http://svn.apache.org/viewvc?rev=419896&view=rev
Log:
Minor adjustments

Modified:
    tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/AbstractSender.java
    tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/NioReceiver.java
    tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/NioReplicationThread.java
    tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java

Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/AbstractSender.java
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/AbstractSender.java?rev=419896&r1=419895&r2=419896&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/AbstractSender.java
(original)
+++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/AbstractSender.java
Fri Jul  7 07:28:08 2006
@@ -113,11 +113,10 @@
      */
     public boolean keepalive() {
         boolean disconnect = false;
-       if ( keepAliveCount >= 0 && requestCount>keepAliveCount ) disconnect
= true;
-       else if ( keepAliveTime >= 0 && keepAliveTime> (System.currentTimeMillis()-connectTime)
) disconnect = true;
-       if ( disconnect ) disconnect();
-       return disconnect;
-
+        if ( keepAliveCount >= 0 && requestCount>keepAliveCount ) disconnect
= true;
+        else if ( keepAliveTime >= 0 && keepAliveTime> (System.currentTimeMillis()-connectTime)
) disconnect = true;
+        if ( disconnect ) disconnect();
+        return disconnect;
     }
     
     protected void setConnected(boolean connected){

Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/NioReceiver.java
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/NioReceiver.java?rev=419896&r1=419895&r2=419896&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/NioReceiver.java
(original)
+++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/NioReceiver.java
Fri Jul  7 07:28:08 2006
@@ -160,14 +160,16 @@
     }
     
     public static void cancelledKey(SelectionKey key) {
-        try {
-            key.cancel();
-            key.channel().close();
-            key.attach(null);
-        } catch (IOException e) {
-            if (log.isDebugEnabled()) log.debug("", e);
-            // Ignore
+        ObjectReader reader = (ObjectReader)key.attachment();
+        if ( reader != null ) {
+            reader.setCancelled(true);
+            reader.finish();
         }
+        key.cancel(); 
+        key.attach(null);
+        try { ((SocketChannel)key.channel()).socket().close(); } catch (IOException e) {
if (log.isDebugEnabled()) log.debug("", e); }
+        try { key.channel().close(); } catch (IOException e) { if (log.isDebugEnabled())
log.debug("", e); }
+        
     }
     
     protected void socketTimeouts() {
@@ -193,6 +195,9 @@
                         long delta = now - ka.getLastAccess();
                         if (delta > (long) getTimeout() && (!ka.isAccessed()))
{
                             log.warn("Channel key is registered, but has had no interest
ops for the last "+getTimeout()+" ms. (cancelled:"+ka.isCancelled()+")");
+//                            System.out.println("Interest:"+key.interestOps());
+//                            System.out.println("Ready Ops:"+key.readyOps());
+//                            System.out.println("Valid:"+key.isValid());
                             ka.setLastAccess(now);
                             //key.interestOps(SelectionKey.OP_READ);
                         }//end if

Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/NioReplicationThread.java
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/NioReplicationThread.java?rev=419896&r1=419895&r2=419896&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/NioReplicationThread.java
(original)
+++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/NioReplicationThread.java
Fri Jul  7 07:28:08 2006
@@ -77,11 +77,13 @@
             if (key == null) {
                 continue;	// just in case
             }
-            ObjectReader reader = (ObjectReader)key.attachment();
             try {
-                reader.setLastAccess(System.currentTimeMillis());
-                reader.access();
-                drainChannel (key,reader);
+                ObjectReader reader = (ObjectReader)key.attachment();
+                if ( reader == null ) {
+                    cancelKey(key);
+                } else {
+                    drainChannel(key, reader);
+                }
             } catch (Exception e) {
                 //this is common, since the sockets on the other
                 //end expire after a certain time.
@@ -97,7 +99,7 @@
                 } 
                 cancelKey(key);
             } finally {
-                reader.finish();
+                
             }
             key = null;
             // done, ready for more, return to pool
@@ -132,6 +134,8 @@
      * so the selector will resume watching this channel.
      */
     protected void drainChannel (final SelectionKey key, ObjectReader reader) throws Exception
{
+        reader.setLastAccess(System.currentTimeMillis());
+        reader.access();
         SocketChannel channel = (SocketChannel) key.channel();
         int count;
         buffer.clear();			// make buffer empty
@@ -158,7 +162,7 @@
         
         ChannelMessage[] msgs = pkgcnt == 0? ChannelData.EMPTY_DATA_ARRAY : reader.execute();
         
-        registerForRead(key);//register to read new data, before we send it off to avoid
dead locks
+        registerForRead(key,reader);//register to read new data, before we send it off to
avoid dead locks
         
         for ( int i=0; i<msgs.length; i++ ) {
             /**
@@ -203,7 +207,8 @@
         cancelKey(key);
     }
 
-    protected void registerForRead(final SelectionKey key) {
+    protected void registerForRead(final SelectionKey key, ObjectReader reader) {
+        reader.finish();
         //register our OP_READ interest
         Runnable r = new Runnable() {
             public void run() {

Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java?rev=419896&r1=419895&r2=419896&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java
(original)
+++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java
Fri Jul  7 07:28:08 2006
@@ -47,6 +47,7 @@
         ParallelNioSender sender = (ParallelNioSender)getSender();
         try {
             sender.sendMessage(destination, message);
+            sender.keepalive();
         }finally {
             if ( !connected ) disconnect();
             returnSender(sender);



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


Mime
View raw message