changeset 1427:bc2e4f1176b2

2008-11-14 Omair Majid <omajid@redhat.com> * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/EventLoop.java Removed useless SuppressWarnings. (static): Delegate the loading of native libraries to SecurityWrapper. * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Operation.java (static): Likewise. * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioPort.java (static): Likewise. * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourcePort.java (static): Likewise. * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetPort.java (static): Likewise. * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Stream.java (static): Likewise. * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/SecurityWrapper.java New class. (loadNativeLibrary): Loads libpulse-java.so in a privileged operation to work when a security manager is installed.
author Omair Majid <omajid@redhat.com>
date Fri, 14 Nov 2008 10:10:11 -0500
parents 89e71b641b8e
children 4548cfdc09fe
files ChangeLog pulseaudio/src/java/org/classpath/icedtea/pulseaudio/EventLoop.java pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Operation.java pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioPort.java pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourcePort.java pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetPort.java pulseaudio/src/java/org/classpath/icedtea/pulseaudio/SecurityWrapper.java pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Stream.java
diffstat 8 files changed, 53 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue Nov 11 04:38:04 2008 -0500
+++ b/ChangeLog	Fri Nov 14 10:10:11 2008 -0500
@@ -1,3 +1,23 @@
+2008-11-14  Omair Majid  <omajid@redhat.com>
+
+	* pulseaudio/src/java/org/classpath/icedtea/pulseaudio/EventLoop.java
+	Removed useless SuppressWarnings.
+	(static): Delegate the loading of native libraries to SecurityWrapper.
+	* pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Operation.java
+	(static): Likewise.
+	* pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioPort.java
+	(static): Likewise.
+	* pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourcePort.java
+	(static): Likewise.
+	* pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetPort.java 
+	(static): Likewise.
+	* pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Stream.java
+	(static): Likewise.
+	* pulseaudio/src/java/org/classpath/icedtea/pulseaudio/SecurityWrapper.java
+	New class.
+	(loadNativeLibrary): Loads libpulse-java.so in a privileged operation to
+	work when a security manager is installed.
+
 2008-11-11  Gary Benson  <gbenson@redhat.com>
 
 	* ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
--- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/EventLoop.java	Tue Nov 11 04:38:04 2008 -0500
+++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/EventLoop.java	Fri Nov 14 10:10:11 2008 -0500
@@ -92,9 +92,7 @@
 	/*
 	 * These fields hold pointers
 	 */
-	@SuppressWarnings("unused")
 	private byte[] contextPointer;
-	@SuppressWarnings("unused")
 	private byte[] mainloopPointer;
 
 	/*
@@ -102,7 +100,7 @@
 	 */
 
 	static {
-		System.loadLibrary("pulse-java");
+		SecurityWrapper.loadNativeLibrary();
 	}
 
 	private EventLoop() {
--- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Operation.java	Tue Nov 11 04:38:04 2008 -0500
+++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Operation.java	Fri Nov 14 10:10:11 2008 -0500
@@ -58,7 +58,7 @@
 	}
 
 	static {
-		System.loadLibrary("pulse-java");
+		SecurityWrapper.loadNativeLibrary();
 	}
 
 	private native void native_ref();
--- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioPort.java	Tue Nov 11 04:38:04 2008 -0500
+++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioPort.java	Fri Nov 14 10:10:11 2008 -0500
@@ -63,7 +63,7 @@
 	private PulseAudioVolumeControl volumeControl;
 
 	static {
-		System.loadLibrary("pulse-java");
+		SecurityWrapper.loadNativeLibrary();
 	}
 
 	public PulseAudioPort(String name) {
--- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourcePort.java	Tue Nov 11 04:38:04 2008 -0500
+++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioSourcePort.java	Fri Nov 14 10:10:11 2008 -0500
@@ -45,7 +45,7 @@
 	/* aka mic */
 
 	static {
-		System.loadLibrary("pulse-java");
+		SecurityWrapper.loadNativeLibrary();
 	}
 
 	public PulseAudioSourcePort(String name) {
--- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetPort.java	Tue Nov 11 04:38:04 2008 -0500
+++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/PulseAudioTargetPort.java	Fri Nov 14 10:10:11 2008 -0500
@@ -44,7 +44,7 @@
 	/* aka speaker */
 
 	static {
-		System.loadLibrary("pulse-java");
+		SecurityWrapper.loadNativeLibrary();
 	}
 
 	public PulseAudioTargetPort(String name) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/SecurityWrapper.java	Fri Nov 14 10:10:11 2008 -0500
@@ -0,0 +1,27 @@
+package org.classpath.icedtea.pulseaudio;
+
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+class SecurityWrapper {
+
+	public static void loadNativeLibrary() {
+
+		if (System.getSecurityManager() != null) {
+			PrivilegedAction<Boolean> action = new PrivilegedAction<Boolean>() {
+				@Override
+				public Boolean run() {
+					System.loadLibrary("pulse-java");
+					return true;
+				}
+
+			};
+
+			AccessController.doPrivileged(action);
+
+		} else {
+			System.loadLibrary("pulse-java");
+		}
+
+	}
+}
--- a/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Stream.java	Tue Nov 11 04:38:04 2008 -0500
+++ b/pulseaudio/src/java/org/classpath/icedtea/pulseaudio/Stream.java	Fri Nov 14 10:10:11 2008 -0500
@@ -104,11 +104,10 @@
 
 	public static final String DEFAULT_DEVICE = null;
 
-	@SuppressWarnings("unused")
 	private byte[] streamPointer;
 
 	static {
-		System.loadLibrary("pulse-java");
+		SecurityWrapper.loadNativeLibrary();
 	}
 
 	private Format format;