Author: stack
Date: Sat Sep 17 18:26:03 2011
New Revision: 1172039
URL: http://svn.apache.org/viewvc?rev=1172039&view=rev
Log:
HBASE-4247 Add isAborted method to the Abortable interface
Modified:
hbase/trunk/CHANGES.txt
hbase/trunk/src/main/java/org/apache/hadoop/hbase/Abortable.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/catalog/TestCatalogTracker.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/catalog/TestCatalogTrackerOnCluster.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/catalog/TestMetaReaderEditor.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestActiveMasterManager.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestClockSkewDetection.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestLogsCleaner.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/handler/MockRegionServerServices.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/handler/MockServer.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/zookeeper/TestZKTable.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/zookeeper/TestZooKeeperNodeTracker.java
Modified: hbase/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Sat Sep 17 18:26:03 2011
@@ -508,6 +508,8 @@ Release 0.91.0 - Unreleased
(David Revell)
HBASE-4424 Provide coprocessors access to createTable() via
MasterServices
+ HBASE-4247 Add isAborted method to the Abortable interface
+ (Akash Ashok)
TASKS
HBASE-3559 Move report of split to master OFF the heartbeat channel
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/Abortable.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/Abortable.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/Abortable.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/Abortable.java Sat Sep 17
18:26:03 2011
@@ -34,4 +34,10 @@ public interface Abortable {
* @param e Throwable that caused abort. Can be null.
*/
public void abort(String why, Throwable e);
+
+ /**
+ * Check if the server or client was aborted.
+ * @return true if the server or client was aborted, false otherwise
+ */
+ public boolean isAborted();
}
\ No newline at end of file
Modified:
hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
(original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
Sat Sep 17 18:26:03 2011
@@ -85,6 +85,7 @@ public class HBaseAdmin implements Abort
// numRetries is for 'normal' stuff... Mutliply by this factor when
// want to wait a long time.
private final int retryLongerMultiplier;
+ private boolean aborted;
/**
* Constructor
@@ -154,8 +155,14 @@ public class HBaseAdmin implements Abort
@Override
public void abort(String why, Throwable e) {
// Currently does nothing but throw the passed message and exception
+ this.aborted = true;
throw new RuntimeException(why, e);
}
+
+ @Override
+ public boolean isAborted(){
+ return this.aborted;
+ }
/** @return HConnection used by this object. */
public HConnection getConnection() {
Modified:
hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
---
hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
(original)
+++
hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
Sat Sep 17 18:26:03 2011
@@ -446,6 +446,7 @@ public class HConnectionManager {
private final Object masterLock = new Object();
private volatile boolean closed;
+ private volatile boolean aborted;
private volatile HMasterInterface master;
private volatile boolean masterChecked;
// ZooKeeper reference
@@ -1660,8 +1661,14 @@ public class HConnectionManager {
}
if (t != null) LOG.fatal(msg, t);
else LOG.fatal(msg);
+ this.aborted = true;
this.closed = true;
}
+
+ @Override
+ public boolean isAborted(){
+ return this.aborted;
+ }
public int getCurrentNrHRS() throws IOException {
try {
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
(original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java Sat
Sep 17 18:26:03 2011
@@ -1308,7 +1308,7 @@ implements HMasterInterface, HMasterRegi
return this.stopped;
}
- boolean isAborted() {
+ public boolean isAborted() {
return this.abort;
}
Modified:
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
---
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
(original)
+++
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
Sat Sep 17 18:26:03 2011
@@ -1521,6 +1521,10 @@ public class HRegionServer implements HR
abort(reason, null);
}
+ public boolean isAborted() {
+ return this.abortRequested;
+ }
+
/*
* Simulate a kill -9 of this server. Exits w/o closing regions or cleaninup
* logs but it does close socket in case want to bring up server on old
Modified:
hbase/trunk/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
---
hbase/trunk/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java
(original)
+++
hbase/trunk/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java
Sat Sep 17 18:26:03 2011
@@ -46,6 +46,7 @@ public class ReplicationLogCleaner imple
private ReplicationZookeeper zkHelper;
private Set<String> hlogs = new HashSet<String>();
private boolean stopped = false;
+ private boolean aborted;
/**
* Instantiates the cleaner, does nothing more.
@@ -166,6 +167,12 @@ public class ReplicationLogCleaner imple
@Override
public void abort(String why, Throwable e) {
LOG.warn("Aborting ReplicationLogCleaner because " + why, e);
+ this.aborted = true;
stop(why);
}
+
+ @Override
+ public boolean isAborted() {
+ return this.aborted;
+ }
}
\ No newline at end of file
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
(original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java Sat
Sep 17 18:26:03 2011
@@ -365,6 +365,11 @@ public class HBaseFsck {
LOG.error(why, e);
System.exit(1);
}
+ @Override
+ public boolean isAborted(){
+ return false;
+ }
+
});
rootRegionTracker.start();
ServerName sn = null;
Modified:
hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
---
hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java
(original)
+++
hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java
Sat Sep 17 18:26:03 2011
@@ -395,4 +395,9 @@ public class ZooKeeperWatcher implements
public void abort(String why, Throwable e) {
this.abortable.abort(why, e);
}
+
+ @Override
+ public boolean isAborted() {
+ return this.abortable.isAborted();
+ }
}
Modified:
hbase/trunk/src/test/java/org/apache/hadoop/hbase/catalog/TestCatalogTracker.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/catalog/TestCatalogTracker.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
---
hbase/trunk/src/test/java/org/apache/hadoop/hbase/catalog/TestCatalogTracker.java
(original)
+++
hbase/trunk/src/test/java/org/apache/hadoop/hbase/catalog/TestCatalogTracker.java
Sat Sep 17 18:26:03 2011
@@ -82,6 +82,11 @@ public class TestCatalogTracker {
public void abort(String why, Throwable e) {
LOG.info(why, e);
}
+
+ @Override
+ public boolean isAborted() {
+ return false;
+ }
};
this.watcher = new ZooKeeperWatcher(UTIL.getConfiguration(),
this.getClass().getSimpleName(), this.abortable, true);
Modified:
hbase/trunk/src/test/java/org/apache/hadoop/hbase/catalog/TestCatalogTrackerOnCluster.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/catalog/TestCatalogTrackerOnCluster.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
---
hbase/trunk/src/test/java/org/apache/hadoop/hbase/catalog/TestCatalogTrackerOnCluster.java
(original)
+++
hbase/trunk/src/test/java/org/apache/hadoop/hbase/catalog/TestCatalogTrackerOnCluster.java
Sat Sep 17 18:26:03 2011
@@ -52,6 +52,11 @@ public class TestCatalogTrackerOnCluster
public void abort(String why, Throwable e) {
LOG.error("Abort was called on 'bad root location writer'", e);
}
+
+ @Override
+ public boolean isAborted() {
+ return false;
+ }
});
ServerName nonsense =
new ServerName("example.org", 1234, System.currentTimeMillis());
Modified:
hbase/trunk/src/test/java/org/apache/hadoop/hbase/catalog/TestMetaReaderEditor.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/catalog/TestMetaReaderEditor.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
---
hbase/trunk/src/test/java/org/apache/hadoop/hbase/catalog/TestMetaReaderEditor.java
(original)
+++
hbase/trunk/src/test/java/org/apache/hadoop/hbase/catalog/TestMetaReaderEditor.java
Sat Sep 17 18:26:03 2011
@@ -61,6 +61,12 @@ public class TestMetaReaderEditor {
LOG.info(why, e);
abort.set(true);
}
+
+ @Override
+ public boolean isAborted() {
+ return abort.get();
+ }
+
};
@BeforeClass public static void beforeClass() throws Exception {
Modified:
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestActiveMasterManager.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestActiveMasterManager.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
---
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestActiveMasterManager.java
(original)
+++
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestActiveMasterManager.java
Sat Sep 17 18:26:03 2011
@@ -245,6 +245,11 @@ public class TestActiveMasterManager {
@Override
public void abort(final String msg, final Throwable t) {}
+
+ @Override
+ public boolean isAborted() {
+ return false;
+ }
@Override
public Configuration getConfiguration() {
Modified:
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
---
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java
(original)
+++
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java
Sat Sep 17 18:26:03 2011
@@ -102,6 +102,11 @@ public class TestCatalogJanitor {
public void abort(String why, Throwable e) {
//no-op
}
+
+ @Override
+ public boolean isAborted() {
+ return false;
+ }
@Override
public boolean isStopped() {
@@ -182,6 +187,11 @@ public class TestCatalogJanitor {
public void abort(String why, Throwable e) {
//no-op
}
+
+ @Override
+ public boolean isAborted() {
+ return false;
+ }
@Override
public void stop(String why) {
Modified:
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestClockSkewDetection.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestClockSkewDetection.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
---
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestClockSkewDetection.java
(original)
+++
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestClockSkewDetection.java
Sat Sep 17 18:26:03 2011
@@ -65,6 +65,11 @@ public class TestClockSkewDetection {
@Override
public void abort(String why, Throwable e) {}
+
+ @Override
+ public boolean isAborted() {
+ return false;
+ }
@Override
public boolean isStopped() {
Modified:
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestLogsCleaner.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestLogsCleaner.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
---
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestLogsCleaner.java
(original)
+++
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestLogsCleaner.java
Sat Sep 17 18:26:03 2011
@@ -156,6 +156,11 @@ public class TestLogsCleaner {
public void abort(String why, Throwable e) {}
@Override
+ public boolean isAborted() {
+ return false;
+ }
+
+ @Override
public void stop(String why) {}
@Override
Modified:
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
---
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java
(original)
+++
hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterFailover.java
Sat Sep 17 18:26:03 2011
@@ -228,10 +228,18 @@ public class TestMasterFailover {
// Create a ZKW to use in the test
ZooKeeperWatcher zkw = new ZooKeeperWatcher(TEST_UTIL.getConfiguration(),
"unittest", new Abortable() {
+ boolean aborted = false;
@Override
public void abort(String why, Throwable e) {
+ this.aborted = true;
throw new RuntimeException("Fatal ZK error, why=" + why, e);
}
+
+ @Override
+ public boolean isAborted() {
+ return this.aborted;
+ }
+
});
// get all the master threads
@@ -545,11 +553,18 @@ public class TestMasterFailover {
// Create a ZKW to use in the test
ZooKeeperWatcher zkw = new ZooKeeperWatcher(TEST_UTIL.getConfiguration(),
"unittest", new Abortable() {
+
@Override
public void abort(String why, Throwable e) {
LOG.error("Fatal ZK Error: " + why, e);
org.junit.Assert.assertFalse("Fatal ZK error", true);
}
+
+ @Override
+ public boolean isAborted() {
+ return false;
+ }
+
});
// get all the master threads
Modified:
hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/handler/MockRegionServerServices.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/handler/MockRegionServerServices.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
---
hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/handler/MockRegionServerServices.java
(original)
+++
hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/handler/MockRegionServerServices.java
Sat Sep 17 18:26:03 2011
@@ -132,4 +132,10 @@ class MockRegionServerServices implement
public boolean isStopped() {
return false;
}
+
+ @Override
+ public boolean isAborted() {
+ // TODO Auto-generated method stub
+ return false;
+ }
}
\ No newline at end of file
Modified:
hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/handler/MockServer.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/handler/MockServer.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
---
hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/handler/MockServer.java
(original)
+++
hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/handler/MockServer.java
Sat Sep 17 18:26:03 2011
@@ -34,8 +34,10 @@ import org.apache.hadoop.hbase.zookeeper
*/
class MockServer implements Server {
static final Log LOG = LogFactory.getLog(MockServer.class);
- boolean stopped = false;
final static ServerName NAME = new ServerName("MockServer", 123, -1);
+
+ boolean stopped;
+ boolean aborted;
final ZooKeeperWatcher zk;
final HBaseTestingUtility htu;
@@ -67,7 +69,8 @@ class MockServer implements Server {
@Override
public void abort(String why, Throwable e) {
LOG.fatal("Abort why=" + why, e);
- this.stopped = true;
+ stop(why);
+ this.aborted = true;
}
@Override
@@ -100,4 +103,10 @@ class MockServer implements Server {
public ServerName getServerName() {
return NAME;
}
+
+ @Override
+ public boolean isAborted() {
+ // TODO Auto-generated method stub
+ return this.aborted;
+ }
}
Modified:
hbase/trunk/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
---
hbase/trunk/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java
(original)
+++
hbase/trunk/src/test/java/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java
Sat Sep 17 18:26:03 2011
@@ -233,6 +233,11 @@ public class TestReplicationSourceManage
public void abort(String why, Throwable e) {
//To change body of implemented methods use File | Settings | File
Templates.
}
+
+ @Override
+ public boolean isAborted() {
+ return false;
+ }
@Override
public void stop(String why) {
Modified:
hbase/trunk/src/test/java/org/apache/hadoop/hbase/zookeeper/TestZKTable.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/zookeeper/TestZKTable.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
---
hbase/trunk/src/test/java/org/apache/hadoop/hbase/zookeeper/TestZKTable.java
(original)
+++
hbase/trunk/src/test/java/org/apache/hadoop/hbase/zookeeper/TestZKTable.java
Sat Sep 17 18:26:03 2011
@@ -58,6 +58,12 @@ public class TestZKTable {
public void abort(String why, Throwable e) {
LOG.info(why, e);
}
+
+ @Override
+ public boolean isAborted() {
+ return false;
+ }
+
};
ZooKeeperWatcher zkw = new ZooKeeperWatcher(TEST_UTIL.getConfiguration(),
name, abortable, true);
Modified:
hbase/trunk/src/test/java/org/apache/hadoop/hbase/zookeeper/TestZooKeeperNodeTracker.java
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/zookeeper/TestZooKeeperNodeTracker.java?rev=1172039&r1=1172038&r2=1172039&view=diff
==============================================================================
---
hbase/trunk/src/test/java/org/apache/hadoop/hbase/zookeeper/TestZooKeeperNodeTracker.java
(original)
+++
hbase/trunk/src/test/java/org/apache/hadoop/hbase/zookeeper/TestZooKeeperNodeTracker.java
Sat Sep 17 18:26:03 2011
@@ -300,6 +300,12 @@ public class TestZooKeeperNodeTracker {
public static class StubAbortable implements Abortable {
@Override
public void abort(final String msg, final Throwable t) {}
+
+ @Override
+ public boolean isAborted() {
+ return false;
+ }
+
}
public static class StubWatcher implements Watcher {