You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by ri...@apache.org on 2006/11/30 16:42:43 UTC

svn commit: r480971 - in /incubator/openejb/branches/v2_2/openejb2/modules: openejb-corba/src/main/java/org/apache/openejb/corba/security/config/ssl/SSLConfig.java openejb-yoko/src/main/java/org/apache/openejb/yoko/SocketFactory.java

Author: rickmcguire
Date: Thu Nov 30 07:42:43 2006
New Revision: 480971

URL: http://svn.apache.org/viewvc?view=rev&rev=480971
Log:
OPENEJB-390 Yoko socket factory can give socket factory errors during server shutdown.


Modified:
    incubator/openejb/branches/v2_2/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/security/config/ssl/SSLConfig.java
    incubator/openejb/branches/v2_2/openejb2/modules/openejb-yoko/src/main/java/org/apache/openejb/yoko/SocketFactory.java

Modified: incubator/openejb/branches/v2_2/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/security/config/ssl/SSLConfig.java
URL: http://svn.apache.org/viewvc/incubator/openejb/branches/v2_2/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/security/config/ssl/SSLConfig.java?view=diff&rev=480971&r1=480970&r2=480971
==============================================================================
--- incubator/openejb/branches/v2_2/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/security/config/ssl/SSLConfig.java (original)
+++ incubator/openejb/branches/v2_2/openejb2/modules/openejb-corba/src/main/java/org/apache/openejb/corba/security/config/ssl/SSLConfig.java Thu Nov 30 07:42:43 2006
@@ -77,11 +77,11 @@
      *         SSLConfig specifices.
      *
      * @throws KeystoreException
-     *                When a problem occurs while creating the factory.          
+     *                When a problem occurs while creating the factory.
      */
     public SSLSocketFactory createSSLFactory(ClassLoader loader) throws KeystoreException {
         if (manager != null) {
-            // fix up the default algorithm now. 
+            // fix up the default algorithm now.
             if ("default".equalsIgnoreCase(algorithm)) {
                 this.algorithm = KeyManagerFactory.getDefaultAlgorithm();
             }
@@ -104,11 +104,11 @@
      *         SSLConfig specifices.
      *
      * @throws KeystoreException
-     *                When a problem occurs while creating the factory.          
+     *                When a problem occurs while creating the factory.
      */
     public SSLServerSocketFactory createSSLServerFactory(ClassLoader loader) throws KeystoreException {
         if (manager != null) {
-            // fix up the default algorithm now. 
+            // fix up the default algorithm now.
             if ("default".equalsIgnoreCase(algorithm)) {
                 this.algorithm = KeyManagerFactory.getDefaultAlgorithm();
             }

Modified: incubator/openejb/branches/v2_2/openejb2/modules/openejb-yoko/src/main/java/org/apache/openejb/yoko/SocketFactory.java
URL: http://svn.apache.org/viewvc/incubator/openejb/branches/v2_2/openejb2/modules/openejb-yoko/src/main/java/org/apache/openejb/yoko/SocketFactory.java?view=diff&rev=480971&r1=480970&r2=480971
==============================================================================
--- incubator/openejb/branches/v2_2/openejb2/modules/openejb-yoko/src/main/java/org/apache/openejb/yoko/SocketFactory.java (original)
+++ incubator/openejb/branches/v2_2/openejb2/modules/openejb-yoko/src/main/java/org/apache/openejb/yoko/SocketFactory.java Thu Nov 30 07:42:43 2006
@@ -331,6 +331,7 @@
                 try {
                     socketFactory = (SSLSocketFactory)sslConfig.createSSLFactory(Thread.currentThread().getContextClassLoader());
                 } catch (Exception e) {
+                    log.error("Unable to create client SSL socket factory", e);
                     throw new IOException("Unable to create client SSL socket factory: " + e.getMessage());
                 }
             }
@@ -356,6 +357,7 @@
                 try {
                     serverSocketFactory = (SSLServerSocketFactory)sslConfig.createSSLServerFactory(Thread.currentThread().getContextClassLoader());
                 } catch (Exception e) {
+                    log.error("Unable to create server SSL socket factory", e);
                     throw new IOException("Unable to create server SSL socket factory: " + e.getMessage());
                 }
             }
@@ -364,6 +366,13 @@
             if (cipherSuites == null) {
                 cipherSuites = SSLCipherSuiteDatabase.getCipherSuites(requires, supports, serverSocketFactory.getSupportedCipherSuites());
             }
+            // There's a bit of a timing problem with server-side ORBs.  Part of the ORB shutdown is to
+            // establish a self-connection to shutdown the acceptor threads.  This requires a client
+            // SSL socket factory.  Unfortunately, if this is occurring during server shutdown, the
+            // FileKeystoreManager will get a NullPointerException because some name queries fail because
+            // things are getting shutdown.  Therefore, if we need the server factory, assume we'll also
+            // need the client factory to shutdown, and request it now.
+            getSocketFactory();
         }
         return serverSocketFactory;
     }