2015-11-25 8:39 GMT+03:00  <kfuj...@apache.org>:
> Author: kfujino
> Date: Wed Nov 25 05:39:26 2015
> New Revision: 1716305
>
> URL: http://svn.apache.org/viewvc?rev=1716305&view=rev
> Log:
> When using a static cluster, add the members that have been cached in the 
> membership service to the map members list in order to ensure that the map 
> member is a static member.
>
> Modified:
>     
> tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
>     tomcat/trunk/webapps/docs/changelog.xml
>
> Modified: 
> tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?rev=1716305&r1=1716304&r2=1716305&view=diff
> ==============================================================================
> --- 
> tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java 
> (original)
> +++ 
> tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java 
> Wed Nov 25 05:39:26 2015
> @@ -733,9 +733,10 @@ public abstract class AbstractReplicated
>          if ( member.equals(getChannel().getLocalMember(false)) ) return;
>          boolean memberAdded = false;
>          //select a backup node if we don't have one
> +        Member mapMember = getChannel().getMember(member);

Can "getChannel().getMember(member)" call return null? Using null
value as a key for mapMembers looks wrong.

E.g. I see that
org.apache.catalina.tribes.membership.Membership.getMember(Member) may
return null.

The Membership.getMember(Member) method is not a Channel method, but
it is used to implement
DomainFilterInterceptor.getMember(Member mbr)
NonBlockingCoordinator.getMember(Member mbr)
TcpFailureDetector.getMember(Member mbr)
MCastService.getMember(Member)

>          synchronized (mapMembers) {
> -            if (!mapMembers.containsKey(member) ) {
> -                mapMembers.put(member, 
> Long.valueOf(System.currentTimeMillis()));
> +            if (!mapMembers.containsKey(mapMember) ) {
> +                mapMembers.put(mapMember, 
> Long.valueOf(System.currentTimeMillis()));
>                  memberAdded = true;
>              }
>          }
>
> Modified: tomcat/trunk/webapps/docs/changelog.xml
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1716305&r1=1716304&r2=1716305&view=diff
> ==============================================================================
> --- tomcat/trunk/webapps/docs/changelog.xml (original)
> +++ tomcat/trunk/webapps/docs/changelog.xml Wed Nov 25 05:39:26 2015
> @@ -145,6 +145,11 @@
>          if the static member that is registered to the remove suspect list 
> has
>          disappeared. (kfujino)
>        </fix>
> +      <fix>
> +        When using a static cluster, add the members that have been cached in
> +        the membership service to the map members list in order to ensure 
> that
> +        the map member is a static member. (kfujino)
> +      </fix>
>      </changelog>
>    </subsection>
>    <subsection name="jdbc-pool">
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>

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

Reply via email to