From: fhanik Date: Mon, 11 Feb 2008 17:29:06 +0000 (+0000) Subject: Corrected use of Channel.getMembers() in cluster X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=ce6d544bc98e4a7cea917ba82e553129f1f31b36;p=tomcat7.0 Corrected use of Channel.getMembers() in cluster Added debug hints to warning messages based on what may be wrong git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@620533 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java b/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java index eca886390..1f568ca4d 100644 --- a/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java +++ b/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java @@ -824,8 +824,9 @@ public class SimpleTcpCluster } else log.error("Unable to send message to local member " + msg); } else { - if (channel.getMembers().length>0) - channel.send(channel.getMembers(),msg,channelSendOptions); + Member[] destmembers = channel.getMembers(); + if (destmembers.length>0) + channel.send(destmembers,msg,channelSendOptions); else if (log.isDebugEnabled()) log.debug("No members in cluster, ignoring message:"+msg); } diff --git a/java/org/apache/catalina/tribes/membership/MemberImpl.java b/java/org/apache/catalina/tribes/membership/MemberImpl.java index c1e5ce1d9..7598ccbae 100644 --- a/java/org/apache/catalina/tribes/membership/MemberImpl.java +++ b/java/org/apache/catalina/tribes/membership/MemberImpl.java @@ -319,7 +319,7 @@ public class MemberImpl implements Member, java.io.Externalizable { int pos = offset; if (XByteBuffer.firstIndexOf(data,offset,TRIBES_MBR_BEGIN)!=pos) { - throw new IllegalArgumentException("Invalid package, should start with:"+org.apache.catalina.tribes.util.Arrays.toString(TRIBES_MBR_BEGIN)); + throw new IllegalArgumentException("Invalid package, should start with:"+org.apache.catalina.tribes.util.Arrays.toString(TRIBES_MBR_BEGIN)+" Possibly an incompatible client broadcasting on the same multicast address."); } if ( length < (TRIBES_MBR_BEGIN.length+4) ) { diff --git a/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java b/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java index 86707b3bd..322d9796e 100644 --- a/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java +++ b/java/org/apache/catalina/tribes/transport/nio/NioReceiver.java @@ -202,10 +202,8 @@ public class NioReceiver extends ReceiverBase implements Runnable, ChannelReceiv 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. (cancelled:"+ka.isCancelled()+"):"+key+" last access:"+new java.sql.Timestamp(ka.getLastAccess())); -// System.out.println("Interest:"+key.interestOps()); -// System.out.println("Ready Ops:"+key.readyOps()); -// System.out.println("Valid:"+key.isValid()); + if (log.isWarnEnabled()) + log.warn("Channel key is registered, but has had no interest ops for the last "+getTimeout()+" ms. (cancelled:"+ka.isCancelled()+"):"+key+" last access:"+new java.sql.Timestamp(ka.getLastAccess())+" Possible cause: all threads used, perform thread dump"); ka.setLastAccess(now); //key.interestOps(SelectionKey.OP_READ); }//end if