Author: markt
Date: Fri Jun  5 14:42:43 2009
New Revision: 782032

URL: http://svn.apache.org/viewvc?rev=782032&view=rev
Log:
Differentiate between APR having been initialised and being available. Changes 
the meaning of aprInitialized so will not propose for back port.

Modified:
    tomcat/trunk/java/org/apache/catalina/connector/Connector.java
    tomcat/trunk/java/org/apache/catalina/core/AprLifecycleListener.java

Modified: tomcat/trunk/java/org/apache/catalina/connector/Connector.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Connector.java?rev=782032&r1=782031&r2=782032&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/Connector.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Connector.java Fri Jun  5 
14:42:43 2009
@@ -595,7 +595,7 @@
      */
     public void setProtocol(String protocol) {
 
-        if (AprLifecycleListener.isAprInitialized()) {
+        if (AprLifecycleListener.isAprAvailable()) {
             if ("HTTP/1.1".equals(protocol)) {
                 setProtocolHandlerClassName
                     ("org.apache.coyote.http11.Http11AprProtocol");

Modified: tomcat/trunk/java/org/apache/catalina/core/AprLifecycleListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/AprLifecycleListener.java?rev=782032&r1=782031&r2=782032&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/AprLifecycleListener.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/core/AprLifecycleListener.java Fri 
Jun  5 14:42:43 2009
@@ -34,7 +34,7 @@
 /**
  * Implementation of <code>LifecycleListener</code> that will init and
  * and destroy APR.
- *
+ * 
  * @author Remy Maucherat
  * @author Filip Hanik
  * @version $Revision$ $Date$
@@ -49,7 +49,7 @@
     /**
      * The string manager for this package.
      */
-    protected StringManager sm =
+    protected static StringManager sm =
         StringManager.getManager(Constants.Package);
 
 
@@ -68,9 +68,12 @@
     protected static String SSLRandomSeed = "builtin";
     protected static boolean sslInitialized = false;
     protected static boolean aprInitialized = false;
+    protected static boolean sslAvailable = false;
+    protected static boolean aprAvailable = false;
 
-    public static boolean isAprInitialized() {
-        return aprInitialized;
+    public static boolean isAprAvailable() {
+        init();
+        return aprAvailable;
     }
 
     // ---------------------------------------------- LifecycleListener Methods
@@ -83,8 +86,8 @@
     public void lifecycleEvent(LifecycleEvent event) {
 
         if (Lifecycle.INIT_EVENT.equals(event.getType())) {
-            aprInitialized = init();
-            if (aprInitialized) {
+            init();
+            if (aprAvailable) {
                 try {
                     initializeSSL();
                 } catch (Throwable t) {
@@ -92,7 +95,7 @@
                 }
             }
         } else if (Lifecycle.AFTER_STOP_EVENT.equals(event.getType())) {
-            if (!aprInitialized) {
+            if (!aprAvailable) {
                 return;
             }
             try {
@@ -114,14 +117,16 @@
         method.invoke(null, (Object []) null);
     }
 
-    private boolean init()
+    private static void init()
     {
         int major = 0;
         int minor = 0;
         int patch = 0;
         if (aprInitialized) {
-            return true;    
+            return;    
         }
+        aprInitialized = true;
+        
         try {
             String methodName = "initialize";
             Class<?> paramTypes[] = new Class[1];
@@ -137,7 +142,7 @@
         } catch (Throwable t) {
             log.info(sm.getString("aprListener.aprInit",
                     System.getProperty("java.library.path")));
-            return false;
+            return;
         }
         if ((major != TCN_REQUIRED_MAJOR)  ||
             (minor < TCN_REQUIRED_MINOR) ||
@@ -154,7 +159,7 @@
             } catch (Throwable t) {
                 // Ignore
             }
-            return false;
+            return;
         }
         if (minor < TCN_RECOMMENDED_MIN ||
                 (minor == TCN_RECOMMENDED_MIN && patch <  TCN_RECOMMENDED_PV)) 
{
@@ -174,7 +179,7 @@
                 Boolean.valueOf(Library.APR_HAS_SENDFILE), 
                 Boolean.valueOf(Library.APR_HAS_SO_ACCEPTFILTER),
                 Boolean.valueOf(Library.APR_HAS_RANDOM)));
-        return true;
+        aprAvailable = true;
     }
 
     private static synchronized void initializeSSL()
@@ -189,6 +194,8 @@
              //only once per VM
             return;
         }
+        sslInitialized = true;
+
         String methodName = "randSet";
         Class<?> paramTypes[] = new Class[1];
         paramTypes[0] = String.class;
@@ -204,7 +211,7 @@
         method = clazz.getMethod(methodName, paramTypes);
         method.invoke(null, paramValues);
  
-        sslInitialized = true;
+        sslAvailable = true;
     }
 
     public String getSSLEngine() {



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to