Author: rmannibucau
Date: Thu Oct 20 08:15:39 2011
New Revision: 1186662

URL: http://svn.apache.org/viewvc?rev=1186662&view=rev
Log:
trying to limit reflection for HostConfig

Modified:
    
openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java

Modified: 
openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1186662&r1=1186661&r2=1186662&view=diff
==============================================================================
--- 
openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
 (original)
+++ 
openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
 Thu Oct 20 08:15:39 2011
@@ -84,6 +84,7 @@ import javax.transaction.TransactionMana
 import javax.transaction.TransactionSynchronizationRegistry;
 import java.io.File;
 import java.io.IOException;
+import java.lang.reflect.Field;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -251,11 +252,19 @@ public class TomcatWebAppBuilder impleme
         }
     }
 
+    // TODO: find something more sexy
+    private static Field HOST_CONFIG_HOST = null;
+    static {
+        try { // do it only once
+            HOST_CONFIG_HOST = HostConfig.class.getDeclaredField("host");
+        } catch (NoSuchFieldException e) {
+            // no-op
+        }
+    }
     private static boolean isReady(HostConfig deployer) {
-        if (deployer != null) {
-            // TODO: find something more sexy
+        if (deployer != null && HOST_CONFIG_HOST != null) {
             try {
-                return 
deployer.getClass().getDeclaredField("host").get(deployer) != null;
+                return HOST_CONFIG_HOST.get(deployer) != null;
             } catch (Exception e) {
                 // no-op
             }


Reply via email to