[jboss-cvs] JBossAS SVN: r90525 - projects/aop/branches/Branch_2_1_IBM/aop/src/main/java/org/jboss/aop/util.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jun 23 10:32:01 EDT 2009


Author: kabir.khan at jboss.com
Date: 2009-06-23 10:32:01 -0400 (Tue, 23 Jun 2009)
New Revision: 90525

Modified:
   projects/aop/branches/Branch_2_1_IBM/aop/src/main/java/org/jboss/aop/util/GetDeclaringClassUtil.java
Log:
[JBAOP-740] Determine IBM JVM

Modified: projects/aop/branches/Branch_2_1_IBM/aop/src/main/java/org/jboss/aop/util/GetDeclaringClassUtil.java
===================================================================
--- projects/aop/branches/Branch_2_1_IBM/aop/src/main/java/org/jboss/aop/util/GetDeclaringClassUtil.java	2009-06-23 14:28:57 UTC (rev 90524)
+++ projects/aop/branches/Branch_2_1_IBM/aop/src/main/java/org/jboss/aop/util/GetDeclaringClassUtil.java	2009-06-23 14:32:01 UTC (rev 90525)
@@ -36,8 +36,8 @@
    static final boolean isIBMJVM;
    static
    {
-      //Better way to determine this
-      isIBMJVM = true;
+      String vendor = getSystemProperty("java.vm.vendor");
+      isIBMJVM = vendor.toUpperCase().contains("IBM");
    }
    
    public static Class<?> getDeclaringClass(Class<?> clazz)
@@ -48,7 +48,7 @@
       }
       Class<?> declaring = clazz.getDeclaringClass();
       
-      if (declaring == null)
+      if (declaring == null && isIBMJVM)
       {
          String name = clazz.getName();
          int last = name.lastIndexOf('$');
@@ -111,4 +111,40 @@
          return GetClassLoaderAction.PRIVILEGED.getClassLoader(clazz);
       }
    }
+
+   private interface GetSystemPropertyAction 
+   {
+      String getSystemProperty(String key);
+      
+      GetSystemPropertyAction NON_PRIVILEGED = new GetSystemPropertyAction() {
+
+         public String getSystemProperty(String key)
+         {
+            return System.getProperty(key);
+         }};
+
+      GetSystemPropertyAction PRIVILEGED = new GetSystemPropertyAction() {
+
+         public String getSystemProperty(final String key)
+         {
+            return AccessController.doPrivileged(new PrivilegedAction<String>() {
+
+               public String run()
+               {
+                  return System.getProperty(key);
+               }});
+         }};
+   }
+   
+   private static String getSystemProperty(String key)
+   {
+      if (System.getSecurityManager() == null)
+      {
+         return GetSystemPropertyAction.NON_PRIVILEGED.getSystemProperty(key);
+      }
+      else
+      {
+         return GetSystemPropertyAction.PRIVILEGED.getSystemProperty(key);
+      }
+   }
 }




More information about the jboss-cvs-commits mailing list