From 5c7411981584e487ac41794feb98a66df9fd6fcb Mon Sep 17 00:00:00 2001 From: gandalf Date: Fri, 23 Mar 2012 15:19:26 +0000 Subject: Merge GNU Classpath 0.99 into libjava. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185741 138bc75d-0d04-0410-961f-82ee72b054a4 --- .../classpath/java/util/logging/LogManager.java | 27 +++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'libjava/classpath/java/util/logging') diff --git a/libjava/classpath/java/util/logging/LogManager.java b/libjava/classpath/java/util/logging/LogManager.java index dffa44d9cf0..f8c6c3393fc 100644 --- a/libjava/classpath/java/util/logging/LogManager.java +++ b/libjava/classpath/java/util/logging/LogManager.java @@ -211,11 +211,21 @@ public class LogManager /** * Registers a listener which will be notified when the * logging properties are re-read. + * + * @param listener the event listener to register. + * @throws NullPointerException if the listener is {@code null}. + * @throws SecurityException if a security manager exists and the + * calling code does not have the permission + * {@code LoggingPermission("control")}. */ public synchronized void addPropertyChangeListener(PropertyChangeListener listener) { - /* do not register null. */ - listener.getClass(); + if (listener == null) + throw new NullPointerException("Attempt to add null property change listener"); + + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkPermission(new LoggingPermission("control", null)); pcs.addPropertyChangeListener(listener); } @@ -226,11 +236,22 @@ public class LogManager * If listener has not been registered previously, * nothing happens. Also, no exception is thrown if * listener is null. + * + * @param listener the listener to remove. + * @throws SecurityException if a security manager exists and the + * calling code does not have the permission + * {@code LoggingPermission("control")}. */ public synchronized void removePropertyChangeListener(PropertyChangeListener listener) { if (listener != null) - pcs.removePropertyChangeListener(listener); + { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkPermission(new LoggingPermission("control", null)); + + pcs.removePropertyChangeListener(listener); + } } /** -- cgit v1.2.3