|
@@ -240,20 +240,33 @@ class BlockPoolManager {
|
|
Joiner.on(",").useForNull("<default>").join(toRefresh));
|
|
Joiner.on(",").useForNull("<default>").join(toRefresh));
|
|
|
|
|
|
for (String nsToRefresh : toRefresh) {
|
|
for (String nsToRefresh : toRefresh) {
|
|
- BPOfferService bpos = bpByNameserviceId.get(nsToRefresh);
|
|
|
|
|
|
+ final BPOfferService bpos = bpByNameserviceId.get(nsToRefresh);
|
|
Map<String, InetSocketAddress> nnIdToAddr = addrMap.get(nsToRefresh);
|
|
Map<String, InetSocketAddress> nnIdToAddr = addrMap.get(nsToRefresh);
|
|
Map<String, InetSocketAddress> nnIdToLifelineAddr =
|
|
Map<String, InetSocketAddress> nnIdToLifelineAddr =
|
|
lifelineAddrMap.get(nsToRefresh);
|
|
lifelineAddrMap.get(nsToRefresh);
|
|
- ArrayList<InetSocketAddress> addrs =
|
|
|
|
|
|
+ final ArrayList<InetSocketAddress> addrs =
|
|
Lists.newArrayListWithCapacity(nnIdToAddr.size());
|
|
Lists.newArrayListWithCapacity(nnIdToAddr.size());
|
|
- ArrayList<InetSocketAddress> lifelineAddrs =
|
|
|
|
|
|
+ final ArrayList<InetSocketAddress> lifelineAddrs =
|
|
Lists.newArrayListWithCapacity(nnIdToAddr.size());
|
|
Lists.newArrayListWithCapacity(nnIdToAddr.size());
|
|
for (String nnId : nnIdToAddr.keySet()) {
|
|
for (String nnId : nnIdToAddr.keySet()) {
|
|
addrs.add(nnIdToAddr.get(nnId));
|
|
addrs.add(nnIdToAddr.get(nnId));
|
|
lifelineAddrs.add(nnIdToLifelineAddr != null ?
|
|
lifelineAddrs.add(nnIdToLifelineAddr != null ?
|
|
nnIdToLifelineAddr.get(nnId) : null);
|
|
nnIdToLifelineAddr.get(nnId) : null);
|
|
}
|
|
}
|
|
- bpos.refreshNNList(addrs, lifelineAddrs);
|
|
|
|
|
|
+ try {
|
|
|
|
+ UserGroupInformation.getLoginUser()
|
|
|
|
+ .doAs(new PrivilegedExceptionAction<Object>() {
|
|
|
|
+ @Override
|
|
|
|
+ public Object run() throws Exception {
|
|
|
|
+ bpos.refreshNNList(addrs, lifelineAddrs);
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ } catch (InterruptedException ex) {
|
|
|
|
+ IOException ioe = new IOException();
|
|
|
|
+ ioe.initCause(ex.getCause());
|
|
|
|
+ throw ioe;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|