From 3216f5b75879e0706b3e3e7cedbcbf56da95989e Mon Sep 17 00:00:00 2001
From: Sven Gothel <sgothel@jausoft.com>
Date: Wed, 28 Apr 2010 07:04:33 +0200
Subject: Fix privileged access (applet)

---
 src/java/com/jogamp/common/os/Platform.java | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

(limited to 'src/java')

diff --git a/src/java/com/jogamp/common/os/Platform.java b/src/java/com/jogamp/common/os/Platform.java
index 169af13..b6298a7 100644
--- a/src/java/com/jogamp/common/os/Platform.java
+++ b/src/java/com/jogamp/common/os/Platform.java
@@ -34,6 +34,7 @@ import com.jogamp.common.nio.Buffers;
 import java.nio.ByteBuffer;
 import java.nio.IntBuffer;
 import java.nio.ShortBuffer;
+import java.security.*;
 
 /**
  * Utility class for querying platform specific properties.
@@ -93,17 +94,23 @@ public class Platform {
             }
         }
 
-        // fast path
-        boolean se = System.getProperty("java.runtime.name").indexOf("Java SE") != -1;
+        boolean se;
+        try{
+            Class.forName("java.nio.LongBuffer");
+            Class.forName("java.nio.DoubleBuffer");
+            se = true;
+        }catch(ClassNotFoundException ex) {
+            se = false;
+        }
 
         if(!se) {
-            try{
-                Class.forName("java.nio.LongBuffer");
-                Class.forName("java.nio.DoubleBuffer");
-                se = true;
-            }catch(ClassNotFoundException ex) {
-                se = false;
-            }
+            // no more the fast path, due to access controller ..
+            String java_runtime_name = (String) AccessController.doPrivileged(new PrivilegedAction() {
+                public Object run() {
+                  return System.getProperty("java.runtime.name");
+                }
+              });
+            se = java_runtime_name.indexOf("Java SE") != -1;
         }
         JAVA_SE = se;
 
-- 
cgit v1.2.3