Call join only for alive threads
authormturk <mturk@13f79535-47bb-0310-9956-ffa450edef68>
Fri, 3 Sep 2010 10:16:00 +0000 (10:16 +0000)
committermturk <mturk@13f79535-47bb-0310-9956-ffa450edef68>
Fri, 3 Sep 2010 10:16:00 +0000 (10:16 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@992252 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/tomcat/util/net/AprEndpoint.java

index 496811f..80a21c4 100644 (file)
@@ -692,32 +692,38 @@ public class AprEndpoint extends AbstractEndpoint {
             }
             for (int i = 0; i < pollers.length; i++) {
                 pollers[i].destroy();
-                try {
-                    pollers[i].interrupt();
-                    pollers[i].join();
-                } catch (InterruptedException e) {
+                if (pollers[i].isAlive()) {
+                    try {
+                       pollers[i].interrupt();
+                        pollers[i].join();
+                    } catch (InterruptedException e) {
                         // Ignore
+                    }
                 }
             }
             pollers = null;
             for (int i = 0; i < cometPollers.length; i++) {
                 cometPollers[i].destroy();
-                try {
-                    cometPollers[i].interrupt();
-                    cometPollers[i].join();
-                } catch (InterruptedException e) {
+                if (cometPollers[i].isAlive()) {
+                    try {
+                        cometPollers[i].interrupt();
+                        cometPollers[i].join();
+                    } catch (InterruptedException e) {
                         // Ignore
+                    }
                 }
             }
             cometPollers = null;
             if (useSendfile) {
                 for (int i = 0; i < sendfiles.length; i++) {
                     sendfiles[i].destroy();
-                    try {
-                        sendfiles[i].interrupt();
-                        sendfiles[i].join();
-                    } catch (InterruptedException e) {
-                        // Ignore
+                    if (sendfiles[i].isAlive()) {
+                        try {
+                            sendfiles[i].interrupt();
+                            sendfiles[i].join();
+                        } catch (InterruptedException e) {
+                            // Ignore
+                        }
                     }
                 }
                 sendfiles = null;