I hacked out the patch below without completely understanding all the
issues involved, or all the ramifications of this change.  I crafted it by
eyeying org.apache.catalina.connector.http.HttpConnector, and after
applying it, mod_jk -> TC4 AJP13 connector appears to work.  Maybe someone
in the know can validate this change.

james


Index: java/org/apache/ajp/tomcat4/Ajp13Connector.java
===================================================================
RCS file: 
/home/cvspublic/jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat4/Ajp13Connector.java,v
retrieving revision 1.6
diff -u -3 -r1.6 Ajp13Connector.java
--- java/org/apache/ajp/tomcat4/Ajp13Connector.java     2001/10/08 20:18:12     1.6
+++ java/org/apache/ajp/tomcat4/Ajp13Connector.java     2001/10/22 18:21:33
@@ -69,6 +69,11 @@
 import java.net.ServerSocket;
 import java.net.Socket;
 import java.security.AccessControlException;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.CertificateException;
+import java.security.UnrecoverableKeyException;
+import java.security.KeyManagementException;
 import java.util.Stack;
 import java.util.Vector;
 import java.util.Enumeration;
@@ -85,7 +90,7 @@
 import org.apache.catalina.Response;
 import org.apache.catalina.Service;
 import org.apache.catalina.net.DefaultServerSocketFactory;
-import org.apache.catalina.net.ServerSocketFactory;
+import org.apache.catalina.ServerSocketFactory;
 import org.apache.catalina.util.LifecycleSupport;
 import org.apache.catalina.util.StringManager;
 
@@ -731,7 +736,9 @@
      *
      * @exception IOException if an input/output error occurs
      */
-    private ServerSocket open() throws IOException {
+    private ServerSocket open() throws IOException, KeyStoreException,
+       NoSuchAlgorithmException, CertificateException, UnrecoverableKeyException,
+       KeyManagementException {
 
         // Acquire the server socket factory for this Connector
         ServerSocketFactory factory = getFactory();
@@ -792,6 +799,21 @@
                     // If reopening fails, exit
                     logger.log("socket reopen: ", ex);
                     break;
+                } catch (KeyStoreException kse) {
+                    logger.log("socket reopen, keystore problem: ", kse);
+                    break;
+                } catch (NoSuchAlgorithmException nsae) {
+                    logger.log("socket reopen, keystore algorithm problem: ", nsae);
+                    break;
+                } catch (CertificateException ce) {
+                    logger.log("socket reopen, certificate problem: ", ce);
+                    break;
+                } catch (UnrecoverableKeyException uke) {
+                    logger.log("socket reopen, unrecoverable key: ", uke);
+                    break;
+                } catch (KeyManagementException kme) {
+                    logger.log("socket reopen, key management problem: ", kme);
+                    break;
                 }
                 continue;
            }
@@ -903,6 +925,8 @@
        try {
            serverSocket = open();
        } catch (IOException e) {
+           throw new LifecycleException(threadName + ".open", e);
+        } catch (Exception e) {
            throw new LifecycleException(threadName + ".open", e);
        }
 

Reply via email to