From 993fedde61c6fd5f38351b69c483a1bf8196bc99 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Wed, 25 Apr 2012 12:16:38 +0200 Subject: Platform: Need priviledge read access for property 'java.awt.headless' --- src/java/com/jogamp/common/os/Platform.java | 22 +++++++++++++--------- 1 file changed, 13 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 461ed2a..fa565a0 100644 --- a/src/java/com/jogamp/common/os/Platform.java +++ b/src/java/com/jogamp/common/os/Platform.java @@ -219,15 +219,19 @@ public class Platform { { final ClassLoader cl = Platform.class.getClassLoader(); - boolean _AWT_AVAILABLE = false; - if( !Debug.getBooleanProperty("java.awt.headless", true) && - ReflectionUtil.isClassAvailable(ReflectionUtil.AWTNames.ComponentClass, cl) && - ReflectionUtil.isClassAvailable(ReflectionUtil.AWTNames.GraphicsEnvironmentClass, cl) ) { - try { - _AWT_AVAILABLE = false == ((Boolean)ReflectionUtil.callStaticMethod(ReflectionUtil.AWTNames.GraphicsEnvironmentClass, ReflectionUtil.AWTNames.isHeadlessMethod, null, null, cl)).booleanValue(); - } catch (Throwable t) { } - } - AWT_AVAILABLE = _AWT_AVAILABLE; + AWT_AVAILABLE = AccessController.doPrivileged(new PrivilegedAction() { + public Boolean run() { + boolean awtAvailable = false; + if( !Debug.getBooleanProperty("java.awt.headless", true) && + ReflectionUtil.isClassAvailable(ReflectionUtil.AWTNames.ComponentClass, cl) && + ReflectionUtil.isClassAvailable(ReflectionUtil.AWTNames.GraphicsEnvironmentClass, cl) ) { + try { + awtAvailable = false == ((Boolean)ReflectionUtil.callStaticMethod(ReflectionUtil.AWTNames.GraphicsEnvironmentClass, ReflectionUtil.AWTNames.isHeadlessMethod, null, null, cl)).booleanValue(); + } catch (Throwable t) { } + } + return new Boolean(awtAvailable); + } + }).booleanValue(); } } -- cgit v1.2.3