You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sentry.apache.org by sp...@apache.org on 2018/12/03 16:09:36 UTC
sentry git commit: SENTRY-2444: SigUtils signal handler needs a way
to unregister functions. (Brian Towles, reviewed by Sergio Pena,
Stephen Moist)
Repository: sentry
Updated Branches:
refs/heads/master 0a609faba -> aeeb8ab5a
SENTRY-2444: SigUtils signal handler needs a way to unregister functions. (Brian Towles, reviewed by Sergio Pena, Stephen Moist)
Project: http://git-wip-us.apache.org/repos/asf/sentry/repo
Commit: http://git-wip-us.apache.org/repos/asf/sentry/commit/aeeb8ab5
Tree: http://git-wip-us.apache.org/repos/asf/sentry/tree/aeeb8ab5
Diff: http://git-wip-us.apache.org/repos/asf/sentry/diff/aeeb8ab5
Branch: refs/heads/master
Commit: aeeb8ab5aaa749a12f43fcf639f95846985112e0
Parents: 0a609fa
Author: Sergio Pena <se...@cloudera.com>
Authored: Mon Dec 3 10:08:53 2018 -0600
Committer: Sergio Pena <se...@cloudera.com>
Committed: Mon Dec 3 10:08:53 2018 -0600
----------------------------------------------------------------------
.../sentry/core/common/utils/SigUtils.java | 24 +++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/sentry/blob/aeeb8ab5/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/utils/SigUtils.java
----------------------------------------------------------------------
diff --git a/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/utils/SigUtils.java b/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/utils/SigUtils.java
index d621c74..3c6c142 100644
--- a/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/utils/SigUtils.java
+++ b/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/utils/SigUtils.java
@@ -20,6 +20,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sun.misc.Signal;
@@ -64,6 +65,11 @@ public final class SigUtils {
public void addListener(SigListener sigListener){
listeners.add(sigListener);
}
+
+ public void removeListener(SigListener sigListener){
+ listeners.remove(sigListener);
+ }
+
@Override
public void handle(Signal sig) {
if (sig != null) {
@@ -96,12 +102,12 @@ public final class SigUtils {
* @throws IllegalArgumentException if invalid signal name or a signal is already handled by OS or JVM
*/
public static void registerSigListener(String sigName, SigListener sigListener) {
+ if (StringUtils.isEmpty(sigName)) {
+ throw new IllegalArgumentException("NULL signal name");
+ }
if (sigListener == null) {
throw new IllegalArgumentException("NULL signal listener");
}
- if (sigName == null) {
- throw new IllegalArgumentException("NULL signal name");
- }
if (!sigHandlerMap.containsKey(sigName)){
sigHandlerMap.put(sigName, new SigHandler());
}
@@ -110,4 +116,16 @@ public final class SigUtils {
Signal.handle(new Signal(sigName), sigHandler);
LOGGER.info("Signal Listener registered for signal " + sigName);
}
+
+ public static void unregisterSigListener(String sigName, SigListener sigListener){
+ if (StringUtils.isEmpty(sigName)) {
+ throw new IllegalArgumentException("NULL signal name");
+ }
+ if (sigListener == null) {
+ throw new IllegalArgumentException("NULL signal listener");
+ }
+ if (!sigHandlerMap.containsKey(sigName)){
+ sigHandlerMap.get(sigName).removeListener(sigListener);
+ }
+ }
}