HBASE-2077 NullPointerException with an open scanner that expired causing
an immediate region server shutdown (JD's fix) git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@916070 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
961e65362e
commit
6c100b6de3
|
@ -90,6 +90,11 @@ public class Leases extends Thread {
|
||||||
if (lease == null) {
|
if (lease == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
synchronized (leaseQueue) {
|
||||||
|
if (lease.getExpirationTime() <= System.currentTimeMillis()) {
|
||||||
|
leaseQueue.add(lease);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
// A lease expired. Run the expired code before removing from queue
|
// A lease expired. Run the expired code before removing from queue
|
||||||
// since its presence in queue is used to see if lease exists still.
|
// since its presence in queue is used to see if lease exists still.
|
||||||
if (lease.getListener() == null) {
|
if (lease.getListener() == null) {
|
||||||
|
@ -97,7 +102,7 @@ public class Leases extends Thread {
|
||||||
} else {
|
} else {
|
||||||
lease.getListener().leaseExpired();
|
lease.getListener().leaseExpired();
|
||||||
}
|
}
|
||||||
synchronized (leaseQueue) {
|
|
||||||
leases.remove(lease.getLeaseName());
|
leases.remove(lease.getLeaseName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -268,5 +273,14 @@ public class Leases extends Thread {
|
||||||
public void setExpirationTime(long expirationTime) {
|
public void setExpirationTime(long expirationTime) {
|
||||||
this.expirationTime = expirationTime;
|
this.expirationTime = expirationTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the expiration time for that lease
|
||||||
|
* @return expiration time
|
||||||
|
*/
|
||||||
|
public long getExpirationTime() {
|
||||||
|
return this.expirationTime;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue