Author: kkolinko Date: Sat Nov 7 17:15:02 2015 New Revision: 1713157 URL: http://svn.apache.org/viewvc?rev=1713157&view=rev Log: Copy test implementation from Tomcat 7. This is some work to make the test more reliable.
Modified: tomcat/tc6.0.x/trunk/test/org/apache/catalina/tribes/group/TestGroupChannelMemberArrival.java Modified: tomcat/tc6.0.x/trunk/test/org/apache/catalina/tribes/group/TestGroupChannelMemberArrival.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/test/org/apache/catalina/tribes/group/TestGroupChannelMemberArrival.java?rev=1713157&r1=1713156&r2=1713157&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/test/org/apache/catalina/tribes/group/TestGroupChannelMemberArrival.java (original) +++ tomcat/tc6.0.x/trunk/test/org/apache/catalina/tribes/group/TestGroupChannelMemberArrival.java Sat Nov 7 17:15:02 2015 @@ -71,12 +71,18 @@ public class TestGroupChannelMemberArriv for (int i = 0; i < threads.length; i++) { threads[i].join(); } - Thread.sleep(2000); - System.out.println("All channels started."); + Thread.sleep(5000); + System.out.println(System.currentTimeMillis() + + " All channels started."); for (int i = listeners.length - 1; i >= 0; i--) { - assertEquals("Checking member arrival length", channels.length - 1, - listeners[i].members.size()); + TestMbrListener listener = listeners[i]; + synchronized (listener.members) { + assertEquals("Checking member arrival length (" + listener.name + + ")", channels.length - 1, listener.members.size()); + } } + System.out.println(System.currentTimeMillis() + + " Members arrival counts checked."); } @After @@ -101,27 +107,75 @@ public class TestGroupChannelMemberArriv public ArrayList<Member> members = new ArrayList<Member>(); public void memberAdded(Member member) { - if (!members.contains(member)) { - members.add(member); - try { - System.out.println(name + ":member added[" + new String(member.getPayload(), "ASCII") + "; Thread:"+Thread.currentThread().getName()+"]"); - } catch (Exception x) { - System.out.println(name + ":member added[unknown]"); + String msg; + int count; + synchronized (members) { + if (!members.contains(member)) { + members.add(member); + msg = "member added"; + } else { + msg = "member added called, but member is already in the list"; } + count = members.size(); } + report(msg, member, count); } public void memberDisappeared(Member member) { - if (members.contains(member)) { - members.remove(member); - try { - System.out.println(name + ":member disappeared[" + new String(member.getPayload(), "ASCII") + "; Thread:"+Thread.currentThread().getName()+"]"); - } catch (Exception x) { - System.out.println(name + ":member disappeared[unknown]"); + String msg; + int count; + synchronized (members) { + if (members.contains(member)) { + members.remove(member); + msg = "member disappeared"; + } else { + msg = "member disappeared called, but there is no such member in the list"; } + count = members.size(); + } + report(msg, member, count); + } + + private void report(String event, Member member, int count) { + StringBuilder message = new StringBuilder(100); + message.append(System.currentTimeMillis()); + message.append(' '); + message.append(name); + message.append(':'); + message.append(event); + message.append(", has "); + message.append(count); + message.append(" members now. Member:["); + message.append("host: "); + appendByteArrayToString(message, member.getHost()); + message.append(", port: "); + message.append(member.getPort()); + message.append(", id: "); + appendByteArrayToString(message, member.getUniqueId()); + message.append(", payload: "); + try { + message.append(new String(member.getPayload(), "ASCII")); + } catch (Exception x) { + message.append("unknown"); } + Thread t = Thread.currentThread(); + message.append("]; Thread:").append(t.getName()).append(", hash:") + .append(t.hashCode()); + System.out.println(message); } + private void appendByteArrayToString(StringBuilder sb, byte[] input) { + if (input == null) { + sb.append("null"); + return; + } + for (int i = 0; i < input.length; i++) { + if (i > 0) { + sb.append('.'); + } + sb.append(input[i] & 0xFF); + } + } } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org