Author: fhanik
Date: Thu Jul  6 09:38:44 2006
New Revision: 419612

URL: http://svn.apache.org/viewvc?rev=419612&view=rev
Log:
Set the state of the object reader correctly, and do it before the event happens

Modified:
    
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/ObjectReader.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

Modified: 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/ObjectReader.java
URL: 
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/ObjectReader.java?rev=419612&r1=419611&r2=419612&view=diff
==============================================================================
--- 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/ObjectReader.java
 (original)
+++ 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/ObjectReader.java
 Thu Jul  6 09:38:44 2006
@@ -43,6 +43,7 @@
     protected long lastAccess = System.currentTimeMillis();
     
     protected boolean accessed = false;
+    private boolean cancelled;
 
     /**
      * Creates an <code>ObjectReader</code> for a TCP NIO socket channel
@@ -146,8 +147,16 @@
         return lastAccess;
     }
 
+    public boolean isCancelled() {
+        return cancelled;
+    }
+
     public void setLastAccess(long lastAccess) {
         this.lastAccess = lastAccess;
+    }
+
+    public void setCancelled(boolean cancelled) {
+        this.cancelled = cancelled;
     }
 
 }

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=419612&r1=419611&r2=419612&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
 Thu Jul  6 09:38:44 2006
@@ -161,11 +161,9 @@
     
     public static void cancelledKey(SelectionKey key) {
         try {
-            ObjectReader ka = (ObjectReader)key.attachment();
             key.cancel();
             key.channel().close();
             key.attach(null);
-            if ( ka != null ) ka.finish();
         } catch (IOException e) {
             if (log.isDebugEnabled()) log.debug("", e);
             // Ignore
@@ -194,7 +192,7 @@
                     if ( ka != null ) {
                         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.");
+                            log.warn("Channel key is registered, but has had 
no interest ops for the last "+getTimeout()+" ms. 
(cancelled:"+ka.isCancelled()+")");
                             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=419612&r1=419611&r2=419612&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
 Thu Jul  6 09:38:44 2006
@@ -229,6 +229,11 @@
     }
 
     private void cancelKey(final SelectionKey key) {
+        ObjectReader reader = (ObjectReader)key.attachment();
+        if ( reader != null ) {
+            reader.setCancelled(true);
+            reader.finish();
+        }
         Runnable cx = new Runnable() {
             public void run() {
                 NioReceiver.cancelledKey(key);



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to