You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jg...@apache.org on 2010/09/13 23:07:15 UTC

svn commit: r996689 - /karaf/trunk/exception/src/main/java/java/lang/Exception.java

Author: jgoodyear
Date: Mon Sep 13 21:07:15 2010
New Revision: 996689

URL: http://svn.apache.org/viewvc?rev=996689&view=rev
Log:
[KARAF-189] Java endorsed dirs on AIX (IBM JVM)

Switched SecurityManagerEx to lazy initialization for IBM Java 6 compatibility.


Modified:
    karaf/trunk/exception/src/main/java/java/lang/Exception.java

Modified: karaf/trunk/exception/src/main/java/java/lang/Exception.java
URL: http://svn.apache.org/viewvc/karaf/trunk/exception/src/main/java/java/lang/Exception.java?rev=996689&r1=996688&r2=996689&view=diff
==============================================================================
--- karaf/trunk/exception/src/main/java/java/lang/Exception.java (original)
+++ karaf/trunk/exception/src/main/java/java/lang/Exception.java Mon Sep 13 21:07:15 2010
@@ -30,7 +30,9 @@ package java.lang;
 public class Exception extends Throwable {
     private static final long serialVersionUID = -3387516993124229948L;
 
-    private transient Class[] classContext = sm.getThrowableContext(this);
+    private static volatile SecurityManagerEx sm;
+
+    private transient Class[] classContext = SecurityManagerEx.getSm().getThrowableContext(this);
 
     /**
      * Constructs a new {@code Exception} that includes the current stack trace.
@@ -78,10 +80,16 @@ public class Exception extends Throwable
         return classContext;
     }
 
-    private static final SecurityManagerEx sm = new SecurityManagerEx();
-
-    static class SecurityManagerEx extends SecurityManager
+    private static class SecurityManagerEx extends SecurityManager
     {
+
+        private static SecurityManagerEx getSm() {
+            if (sm == null) {
+                sm = new SecurityManagerEx();
+            }
+            return sm;
+        }
+
         public Class[] getClassContext()
         {
             return super.getClassContext();