modify test code to report more info
authorfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Thu, 21 Feb 2008 16:06:17 +0000 (16:06 +0000)
committerfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Thu, 21 Feb 2008 16:06:17 +0000 (16:06 +0000)
avoid concurrency during closedown

git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@629843 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/catalina/tribes/transport/nio/NioReceiver.java
test/org/apache/catalina/tribes/test/channel/TestUdpPackages.java

index 0c91f1f..d166b16 100644 (file)
@@ -281,7 +281,7 @@ public class NioReceiver extends ReceiverBase implements Runnable, ChannelReceiv
                 // get an iterator over the set of selected keys
                 Iterator it = selector.selectedKeys().iterator();
                 // look at each key in the selected set
-                while (it.hasNext()) {
+                while (it.hasNext() && selector!=null) {
                     SelectionKey key = (SelectionKey) it.next();
                     // Is a new connection coming in?
                     if (key.isAcceptable()) {
@@ -310,7 +310,7 @@ public class NioReceiver extends ReceiverBase implements Runnable, ChannelReceiv
                     }
 
                     // remove key from selected set, it's been handled
-                    it.remove();
+                    if (selector!=null) it.remove();
                 }
             } catch (java.nio.channels.ClosedSelectorException cse) {
                 // ignore is normal at shutdown or stop listen socket
index dc4f39a..3197ebd 100644 (file)
@@ -104,9 +104,9 @@ public class TestUdpPackages extends TestCase {
                     try {\r
                         long start = System.currentTimeMillis();\r
                         for (int i = 0; i < msgCount; i++) {\r
-                            int cnt = counter.addAndGet(1);\r
+                            int cnt = counter.getAndAdd(1);\r
                             channel1.send(new Member[] {channel2.getLocalMember(false)}, Data.createRandomData(1024,cnt),Channel.SEND_OPTIONS_UDP);\r
-                            Thread.currentThread().sleep(10);\r
+                            //Thread.currentThread().sleep(10);\r
                         }\r
                         System.out.println("Thread["+this.getName()+"] sent "+msgCount+" messages in "+(System.currentTimeMillis()-start)+" ms.");\r
                     }catch ( Exception x ) {\r