You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2015/08/12 22:25:56 UTC
[1/6] hbase git commit: HBASE-14209 TestShell visibility tests failing
Repository: hbase
Updated Branches:
refs/heads/0.98 ae3a1b905 -> cddb28ef9
refs/heads/branch-1 881d2c1d7 -> ba328d26e
refs/heads/branch-1.0 d38104c4e -> b99b56715
refs/heads/branch-1.1 eedde4ad9 -> aa6460539
refs/heads/branch-1.2 25bf721b5 -> 7fc0b814d
refs/heads/master 0c63d415d -> beb1f1d35
HBASE-14209 TestShell visibility tests failing
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/cddb28ef
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/cddb28ef
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/cddb28ef
Branch: refs/heads/0.98
Commit: cddb28ef9fae67087280b99c4323945e43fba000
Parents: ae3a1b9
Author: Andrew Purtell <ap...@apache.org>
Authored: Wed Aug 12 13:25:25 2015 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Wed Aug 12 13:25:25 2015 -0700
----------------------------------------------------------------------
.../visibility/VisibilityLabelsCache.java | 48 ++++++++++++++------
1 file changed, 33 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/cddb28ef/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
index 4cf39c7..763a624 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
@@ -206,27 +206,37 @@ public class VisibilityLabelsCache implements VisibilityLabelOrdinalProvider {
}
public List<String> getUserAuths(String user) {
- List<String> auths = EMPTY_LIST;
- Set<Integer> authOrdinals = getUserAuthsAsOrdinals(user);
- if (!authOrdinals.equals(EMPTY_SET)) {
- auths = new ArrayList<String>(authOrdinals.size());
- for (Integer authOrdinal : authOrdinals) {
- auths.add(ordinalVsLabels.get(authOrdinal));
+ this.lock.readLock().lock();
+ try {
+ List<String> auths = EMPTY_LIST;
+ Set<Integer> authOrdinals = getUserAuthsAsOrdinals(user);
+ if (!authOrdinals.equals(EMPTY_SET)) {
+ auths = new ArrayList<String>(authOrdinals.size());
+ for (Integer authOrdinal : authOrdinals) {
+ auths.add(ordinalVsLabels.get(authOrdinal));
+ }
}
+ return auths;
+ } finally {
+ this.lock.readLock().unlock();
}
- return auths;
}
public List<String> getGroupAuths(String[] groups) {
- List<String> auths = EMPTY_LIST;
- Set<Integer> authOrdinals = getGroupAuthsAsOrdinals(groups);
- if (!authOrdinals.equals(EMPTY_SET)) {
- auths = new ArrayList<String>(authOrdinals.size());
- for (Integer authOrdinal : authOrdinals) {
- auths.add(ordinalVsLabels.get(authOrdinal));
+ this.lock.readLock().lock();
+ try {
+ List<String> auths = EMPTY_LIST;
+ Set<Integer> authOrdinals = getGroupAuthsAsOrdinals(groups);
+ if (!authOrdinals.equals(EMPTY_SET)) {
+ auths = new ArrayList<String>(authOrdinals.size());
+ for (Integer authOrdinal : authOrdinals) {
+ auths.add(ordinalVsLabels.get(authOrdinal));
+ }
}
+ return auths;
+ } finally {
+ this.lock.readLock().unlock();
}
- return auths;
}
/**
@@ -270,7 +280,15 @@ public class VisibilityLabelsCache implements VisibilityLabelOrdinalProvider {
}
}
- public void writeToZookeeper(byte[] data, boolean labelsOrUserAuths) {
+ public void writeToZookeeper(byte[] data, boolean labelsOrUserAuths) throws IOException {
+ // Update local state, then send it to zookeeper
+ if (labelsOrUserAuths) {
+ // True for labels
+ this.refreshLabelsCache(data);
+ } else {
+ // False for user auths
+ this.refreshUserAuthsCache(data);
+ }
this.zkVisibilityWatcher.writeToZookeeper(data, labelsOrUserAuths);
}
}
[4/6] hbase git commit: HBASE-14209 TestShell visibility tests failing
Posted by ap...@apache.org.
HBASE-14209 TestShell visibility tests failing
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/aa646053
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/aa646053
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/aa646053
Branch: refs/heads/branch-1.1
Commit: aa646053998a718d13ddaa3d53cac21bf2559951
Parents: eedde4a
Author: Andrew Purtell <ap...@apache.org>
Authored: Wed Aug 12 13:25:31 2015 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Wed Aug 12 13:25:31 2015 -0700
----------------------------------------------------------------------
.../visibility/VisibilityLabelsCache.java | 48 ++++++++++++++------
1 file changed, 33 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/aa646053/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
index 4cf39c7..763a624 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
@@ -206,27 +206,37 @@ public class VisibilityLabelsCache implements VisibilityLabelOrdinalProvider {
}
public List<String> getUserAuths(String user) {
- List<String> auths = EMPTY_LIST;
- Set<Integer> authOrdinals = getUserAuthsAsOrdinals(user);
- if (!authOrdinals.equals(EMPTY_SET)) {
- auths = new ArrayList<String>(authOrdinals.size());
- for (Integer authOrdinal : authOrdinals) {
- auths.add(ordinalVsLabels.get(authOrdinal));
+ this.lock.readLock().lock();
+ try {
+ List<String> auths = EMPTY_LIST;
+ Set<Integer> authOrdinals = getUserAuthsAsOrdinals(user);
+ if (!authOrdinals.equals(EMPTY_SET)) {
+ auths = new ArrayList<String>(authOrdinals.size());
+ for (Integer authOrdinal : authOrdinals) {
+ auths.add(ordinalVsLabels.get(authOrdinal));
+ }
}
+ return auths;
+ } finally {
+ this.lock.readLock().unlock();
}
- return auths;
}
public List<String> getGroupAuths(String[] groups) {
- List<String> auths = EMPTY_LIST;
- Set<Integer> authOrdinals = getGroupAuthsAsOrdinals(groups);
- if (!authOrdinals.equals(EMPTY_SET)) {
- auths = new ArrayList<String>(authOrdinals.size());
- for (Integer authOrdinal : authOrdinals) {
- auths.add(ordinalVsLabels.get(authOrdinal));
+ this.lock.readLock().lock();
+ try {
+ List<String> auths = EMPTY_LIST;
+ Set<Integer> authOrdinals = getGroupAuthsAsOrdinals(groups);
+ if (!authOrdinals.equals(EMPTY_SET)) {
+ auths = new ArrayList<String>(authOrdinals.size());
+ for (Integer authOrdinal : authOrdinals) {
+ auths.add(ordinalVsLabels.get(authOrdinal));
+ }
}
+ return auths;
+ } finally {
+ this.lock.readLock().unlock();
}
- return auths;
}
/**
@@ -270,7 +280,15 @@ public class VisibilityLabelsCache implements VisibilityLabelOrdinalProvider {
}
}
- public void writeToZookeeper(byte[] data, boolean labelsOrUserAuths) {
+ public void writeToZookeeper(byte[] data, boolean labelsOrUserAuths) throws IOException {
+ // Update local state, then send it to zookeeper
+ if (labelsOrUserAuths) {
+ // True for labels
+ this.refreshLabelsCache(data);
+ } else {
+ // False for user auths
+ this.refreshUserAuthsCache(data);
+ }
this.zkVisibilityWatcher.writeToZookeeper(data, labelsOrUserAuths);
}
}
[2/6] hbase git commit: HBASE-14209 TestShell visibility tests failing
Posted by ap...@apache.org.
HBASE-14209 TestShell visibility tests failing
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/ba328d26
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/ba328d26
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/ba328d26
Branch: refs/heads/branch-1
Commit: ba328d26eab8bc82d6c7e3a11f4254cb036b4d23
Parents: 881d2c1
Author: Andrew Purtell <ap...@apache.org>
Authored: Wed Aug 12 13:25:29 2015 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Wed Aug 12 13:25:29 2015 -0700
----------------------------------------------------------------------
.../visibility/VisibilityLabelsCache.java | 48 ++++++++++++++------
1 file changed, 33 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/ba328d26/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
index 4cf39c7..763a624 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
@@ -206,27 +206,37 @@ public class VisibilityLabelsCache implements VisibilityLabelOrdinalProvider {
}
public List<String> getUserAuths(String user) {
- List<String> auths = EMPTY_LIST;
- Set<Integer> authOrdinals = getUserAuthsAsOrdinals(user);
- if (!authOrdinals.equals(EMPTY_SET)) {
- auths = new ArrayList<String>(authOrdinals.size());
- for (Integer authOrdinal : authOrdinals) {
- auths.add(ordinalVsLabels.get(authOrdinal));
+ this.lock.readLock().lock();
+ try {
+ List<String> auths = EMPTY_LIST;
+ Set<Integer> authOrdinals = getUserAuthsAsOrdinals(user);
+ if (!authOrdinals.equals(EMPTY_SET)) {
+ auths = new ArrayList<String>(authOrdinals.size());
+ for (Integer authOrdinal : authOrdinals) {
+ auths.add(ordinalVsLabels.get(authOrdinal));
+ }
}
+ return auths;
+ } finally {
+ this.lock.readLock().unlock();
}
- return auths;
}
public List<String> getGroupAuths(String[] groups) {
- List<String> auths = EMPTY_LIST;
- Set<Integer> authOrdinals = getGroupAuthsAsOrdinals(groups);
- if (!authOrdinals.equals(EMPTY_SET)) {
- auths = new ArrayList<String>(authOrdinals.size());
- for (Integer authOrdinal : authOrdinals) {
- auths.add(ordinalVsLabels.get(authOrdinal));
+ this.lock.readLock().lock();
+ try {
+ List<String> auths = EMPTY_LIST;
+ Set<Integer> authOrdinals = getGroupAuthsAsOrdinals(groups);
+ if (!authOrdinals.equals(EMPTY_SET)) {
+ auths = new ArrayList<String>(authOrdinals.size());
+ for (Integer authOrdinal : authOrdinals) {
+ auths.add(ordinalVsLabels.get(authOrdinal));
+ }
}
+ return auths;
+ } finally {
+ this.lock.readLock().unlock();
}
- return auths;
}
/**
@@ -270,7 +280,15 @@ public class VisibilityLabelsCache implements VisibilityLabelOrdinalProvider {
}
}
- public void writeToZookeeper(byte[] data, boolean labelsOrUserAuths) {
+ public void writeToZookeeper(byte[] data, boolean labelsOrUserAuths) throws IOException {
+ // Update local state, then send it to zookeeper
+ if (labelsOrUserAuths) {
+ // True for labels
+ this.refreshLabelsCache(data);
+ } else {
+ // False for user auths
+ this.refreshUserAuthsCache(data);
+ }
this.zkVisibilityWatcher.writeToZookeeper(data, labelsOrUserAuths);
}
}
[6/6] hbase git commit: HBASE-14209 TestShell visibility tests failing
Posted by ap...@apache.org.
HBASE-14209 TestShell visibility tests failing
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/beb1f1d3
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/beb1f1d3
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/beb1f1d3
Branch: refs/heads/master
Commit: beb1f1d358e7f786c510c988b09dab0f87945d1f
Parents: 0c63d41
Author: Andrew Purtell <ap...@apache.org>
Authored: Wed Aug 12 13:25:34 2015 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Wed Aug 12 13:25:34 2015 -0700
----------------------------------------------------------------------
.../visibility/VisibilityLabelsCache.java | 48 ++++++++++++++------
1 file changed, 33 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/beb1f1d3/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
index 4cf39c7..763a624 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
@@ -206,27 +206,37 @@ public class VisibilityLabelsCache implements VisibilityLabelOrdinalProvider {
}
public List<String> getUserAuths(String user) {
- List<String> auths = EMPTY_LIST;
- Set<Integer> authOrdinals = getUserAuthsAsOrdinals(user);
- if (!authOrdinals.equals(EMPTY_SET)) {
- auths = new ArrayList<String>(authOrdinals.size());
- for (Integer authOrdinal : authOrdinals) {
- auths.add(ordinalVsLabels.get(authOrdinal));
+ this.lock.readLock().lock();
+ try {
+ List<String> auths = EMPTY_LIST;
+ Set<Integer> authOrdinals = getUserAuthsAsOrdinals(user);
+ if (!authOrdinals.equals(EMPTY_SET)) {
+ auths = new ArrayList<String>(authOrdinals.size());
+ for (Integer authOrdinal : authOrdinals) {
+ auths.add(ordinalVsLabels.get(authOrdinal));
+ }
}
+ return auths;
+ } finally {
+ this.lock.readLock().unlock();
}
- return auths;
}
public List<String> getGroupAuths(String[] groups) {
- List<String> auths = EMPTY_LIST;
- Set<Integer> authOrdinals = getGroupAuthsAsOrdinals(groups);
- if (!authOrdinals.equals(EMPTY_SET)) {
- auths = new ArrayList<String>(authOrdinals.size());
- for (Integer authOrdinal : authOrdinals) {
- auths.add(ordinalVsLabels.get(authOrdinal));
+ this.lock.readLock().lock();
+ try {
+ List<String> auths = EMPTY_LIST;
+ Set<Integer> authOrdinals = getGroupAuthsAsOrdinals(groups);
+ if (!authOrdinals.equals(EMPTY_SET)) {
+ auths = new ArrayList<String>(authOrdinals.size());
+ for (Integer authOrdinal : authOrdinals) {
+ auths.add(ordinalVsLabels.get(authOrdinal));
+ }
}
+ return auths;
+ } finally {
+ this.lock.readLock().unlock();
}
- return auths;
}
/**
@@ -270,7 +280,15 @@ public class VisibilityLabelsCache implements VisibilityLabelOrdinalProvider {
}
}
- public void writeToZookeeper(byte[] data, boolean labelsOrUserAuths) {
+ public void writeToZookeeper(byte[] data, boolean labelsOrUserAuths) throws IOException {
+ // Update local state, then send it to zookeeper
+ if (labelsOrUserAuths) {
+ // True for labels
+ this.refreshLabelsCache(data);
+ } else {
+ // False for user auths
+ this.refreshUserAuthsCache(data);
+ }
this.zkVisibilityWatcher.writeToZookeeper(data, labelsOrUserAuths);
}
}
[5/6] hbase git commit: HBASE-14209 TestShell visibility tests failing
Posted by ap...@apache.org.
HBASE-14209 TestShell visibility tests failing
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/7fc0b814
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/7fc0b814
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/7fc0b814
Branch: refs/heads/branch-1.2
Commit: 7fc0b814da02187125a033d98e4f51b8f70d53b7
Parents: 25bf721
Author: Andrew Purtell <ap...@apache.org>
Authored: Wed Aug 12 13:25:32 2015 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Wed Aug 12 13:25:32 2015 -0700
----------------------------------------------------------------------
.../visibility/VisibilityLabelsCache.java | 48 ++++++++++++++------
1 file changed, 33 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/7fc0b814/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
index 4cf39c7..763a624 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
@@ -206,27 +206,37 @@ public class VisibilityLabelsCache implements VisibilityLabelOrdinalProvider {
}
public List<String> getUserAuths(String user) {
- List<String> auths = EMPTY_LIST;
- Set<Integer> authOrdinals = getUserAuthsAsOrdinals(user);
- if (!authOrdinals.equals(EMPTY_SET)) {
- auths = new ArrayList<String>(authOrdinals.size());
- for (Integer authOrdinal : authOrdinals) {
- auths.add(ordinalVsLabels.get(authOrdinal));
+ this.lock.readLock().lock();
+ try {
+ List<String> auths = EMPTY_LIST;
+ Set<Integer> authOrdinals = getUserAuthsAsOrdinals(user);
+ if (!authOrdinals.equals(EMPTY_SET)) {
+ auths = new ArrayList<String>(authOrdinals.size());
+ for (Integer authOrdinal : authOrdinals) {
+ auths.add(ordinalVsLabels.get(authOrdinal));
+ }
}
+ return auths;
+ } finally {
+ this.lock.readLock().unlock();
}
- return auths;
}
public List<String> getGroupAuths(String[] groups) {
- List<String> auths = EMPTY_LIST;
- Set<Integer> authOrdinals = getGroupAuthsAsOrdinals(groups);
- if (!authOrdinals.equals(EMPTY_SET)) {
- auths = new ArrayList<String>(authOrdinals.size());
- for (Integer authOrdinal : authOrdinals) {
- auths.add(ordinalVsLabels.get(authOrdinal));
+ this.lock.readLock().lock();
+ try {
+ List<String> auths = EMPTY_LIST;
+ Set<Integer> authOrdinals = getGroupAuthsAsOrdinals(groups);
+ if (!authOrdinals.equals(EMPTY_SET)) {
+ auths = new ArrayList<String>(authOrdinals.size());
+ for (Integer authOrdinal : authOrdinals) {
+ auths.add(ordinalVsLabels.get(authOrdinal));
+ }
}
+ return auths;
+ } finally {
+ this.lock.readLock().unlock();
}
- return auths;
}
/**
@@ -270,7 +280,15 @@ public class VisibilityLabelsCache implements VisibilityLabelOrdinalProvider {
}
}
- public void writeToZookeeper(byte[] data, boolean labelsOrUserAuths) {
+ public void writeToZookeeper(byte[] data, boolean labelsOrUserAuths) throws IOException {
+ // Update local state, then send it to zookeeper
+ if (labelsOrUserAuths) {
+ // True for labels
+ this.refreshLabelsCache(data);
+ } else {
+ // False for user auths
+ this.refreshUserAuthsCache(data);
+ }
this.zkVisibilityWatcher.writeToZookeeper(data, labelsOrUserAuths);
}
}
[3/6] hbase git commit: HBASE-14209 TestShell visibility tests failing
Posted by ap...@apache.org.
HBASE-14209 TestShell visibility tests failing
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/b99b5671
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/b99b5671
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/b99b5671
Branch: refs/heads/branch-1.0
Commit: b99b56715e2def928615506b2e9dcd73f779f3d9
Parents: d38104c
Author: Andrew Purtell <ap...@apache.org>
Authored: Wed Aug 12 13:25:30 2015 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Wed Aug 12 13:25:30 2015 -0700
----------------------------------------------------------------------
.../visibility/VisibilityLabelsCache.java | 48 ++++++++++++++------
1 file changed, 33 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/b99b5671/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
index ed2998a..312581d 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java
@@ -206,27 +206,37 @@ public class VisibilityLabelsCache implements VisibilityLabelOrdinalProvider {
}
public List<String> getUserAuths(String user) {
- List<String> auths = EMPTY_LIST;
- Set<Integer> authOrdinals = getUserAuthsAsOrdinals(user);
- if (!authOrdinals.equals(EMPTY_SET)) {
- auths = new ArrayList<String>(authOrdinals.size());
- for (Integer authOrdinal : authOrdinals) {
- auths.add(ordinalVsLabels.get(authOrdinal));
+ this.lock.readLock().lock();
+ try {
+ List<String> auths = EMPTY_LIST;
+ Set<Integer> authOrdinals = getUserAuthsAsOrdinals(user);
+ if (!authOrdinals.equals(EMPTY_SET)) {
+ auths = new ArrayList<String>(authOrdinals.size());
+ for (Integer authOrdinal : authOrdinals) {
+ auths.add(ordinalVsLabels.get(authOrdinal));
+ }
}
+ return auths;
+ } finally {
+ this.lock.readLock().unlock();
}
- return auths;
}
public List<String> getGroupAuths(String[] groups) {
- List<String> auths = EMPTY_LIST;
- Set<Integer> authOrdinals = getGroupAuthsAsOrdinals(groups);
- if (!authOrdinals.equals(EMPTY_SET)) {
- auths = new ArrayList<String>(authOrdinals.size());
- for (Integer authOrdinal : authOrdinals) {
- auths.add(ordinalVsLabels.get(authOrdinal));
+ this.lock.readLock().lock();
+ try {
+ List<String> auths = EMPTY_LIST;
+ Set<Integer> authOrdinals = getGroupAuthsAsOrdinals(groups);
+ if (!authOrdinals.equals(EMPTY_SET)) {
+ auths = new ArrayList<String>(authOrdinals.size());
+ for (Integer authOrdinal : authOrdinals) {
+ auths.add(ordinalVsLabels.get(authOrdinal));
+ }
}
+ return auths;
+ } finally {
+ this.lock.readLock().unlock();
}
- return auths;
}
/**
@@ -270,7 +280,15 @@ public class VisibilityLabelsCache implements VisibilityLabelOrdinalProvider {
}
}
- public void writeToZookeeper(byte[] data, boolean labelsOrUserAuths) {
+ public void writeToZookeeper(byte[] data, boolean labelsOrUserAuths) throws IOException {
+ // Update local state, then send it to zookeeper
+ if (labelsOrUserAuths) {
+ // True for labels
+ this.refreshLabelsCache(data);
+ } else {
+ // False for user auths
+ this.refreshUserAuthsCache(data);
+ }
this.zkVisibilityWatcher.writeToZookeeper(data, labelsOrUserAuths);
}
}