You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by ja...@apache.org on 2014/10/07 19:54:35 UTC
git commit: Attempting to make unit tests more resilient
Repository: phoenix
Updated Branches:
refs/heads/master 2faeda4a7 -> 05971c0ca
Attempting to make unit tests more resilient
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/05971c0c
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/05971c0c
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/05971c0c
Branch: refs/heads/master
Commit: 05971c0cac245ff4700959c51c5fc5d3a5fbe6d9
Parents: 2faeda4
Author: James Taylor <jt...@salesforce.com>
Authored: Tue Oct 7 10:59:46 2014 -0700
Committer: James Taylor <jt...@salesforce.com>
Committed: Tue Oct 7 10:59:46 2014 -0700
----------------------------------------------------------------------
.../end2end/index/MutableIndexFailureIT.java | 13 +++++---
.../index/MutableIndexReplicationIT.java | 17 ++--------
.../phoenix/jdbc/PhoenixEmbeddedDriver.java | 21 ++++++------
.../java/org/apache/phoenix/query/BaseTest.java | 34 ++++++++++++--------
4 files changed, 41 insertions(+), 44 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/phoenix/blob/05971c0c/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexFailureIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexFailureIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexFailureIT.java
index 6137e06..acece20 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexFailureIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexFailureIT.java
@@ -116,14 +116,17 @@ public class MutableIndexFailureIT extends BaseTest {
@After
public void tearDown() throws Exception {
- if(scheduleTimer != null){
- scheduleTimer.cancel();
- scheduleTimer = null;
- }
try {
destroyDriver(driver);
} finally {
- util.shutdownMiniCluster();
+ try {
+ if(scheduleTimer != null){
+ scheduleTimer.cancel();
+ scheduleTimer = null;
+ }
+ } finally {
+ util.shutdownMiniCluster();
+ }
}
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/05971c0c/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexReplicationIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexReplicationIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexReplicationIT.java
index ca59df8..15465d1 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexReplicationIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/MutableIndexReplicationIT.java
@@ -52,7 +52,6 @@ import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster;
import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
import org.apache.phoenix.end2end.NeedsOwnMiniClusterTest;
-import org.apache.phoenix.jdbc.PhoenixEmbeddedDriver;
import org.apache.phoenix.jdbc.PhoenixTestDriver;
import org.apache.phoenix.query.BaseTest;
import org.apache.phoenix.query.QueryServices;
@@ -112,7 +111,7 @@ public class MutableIndexReplicationIT extends BaseTest {
@AfterClass
public static void tearDownAfterClass() throws Exception {
try {
- destroyDriver();
+ destroyDriver(driver);
} finally {
try {
utility2.shutdownMiniCluster();
@@ -127,6 +126,7 @@ public class MutableIndexReplicationIT extends BaseTest {
// lookups
// conf1.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/1");
// smaller log roll size to trigger more events
+ setUpConfigForMiniCluster(conf1);
conf1.setFloat("hbase.regionserver.logroll.multiplier", 0.0003f);
conf1.setInt("replication.source.size.capacity", 10240);
conf1.setLong("replication.source.sleepforretries", 100);
@@ -140,9 +140,6 @@ public class MutableIndexReplicationIT extends BaseTest {
conf1.setInt("replication.stats.thread.period.seconds", 5);
conf1.setBoolean("hbase.tests.use.shortcircuit.reads", false);
- // add the phoenix-specific configs
- BaseTest.setUpConfigForMiniCluster(conf1);
-
utility1 = new HBaseTestingUtility(conf1);
utility1.startMiniZKCluster();
MiniZooKeeperCluster miniZK = utility1.getZkCluster();
@@ -182,15 +179,7 @@ public class MutableIndexReplicationIT extends BaseTest {
// Must update config before starting server
URL = getLocalClusterUrl(utility1);
LOG.info("Connecting driver to "+URL);
- setUpTestDriver(URL, new ReadOnlyProps(props.entrySet().iterator()));
- }
-
- protected static void setUpTestDriver(String url, ReadOnlyProps props) throws Exception {
- if (PhoenixEmbeddedDriver.isTestUrl(url)) {
- if (driver == null) {
- driver = initAndRegisterDriver(url, props);
- }
- }
+ driver = initAndRegisterDriver(URL, new ReadOnlyProps(props.entrySet().iterator()));
}
@Test
http://git-wip-us.apache.org/repos/asf/phoenix/blob/05971c0c/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java
index c706486..ff25fae 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixEmbeddedDriver.java
@@ -41,6 +41,7 @@ import org.apache.phoenix.util.PropertiesUtil;
import org.apache.phoenix.util.ReadOnlyProps;
import org.apache.phoenix.util.SQLCloseable;
+import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
@@ -58,6 +59,7 @@ public abstract class PhoenixEmbeddedDriver implements Driver, org.apache.phoeni
* The protocol for Phoenix Network Client
*/
private final static String DNC_JDBC_PROTOCOL_SUFFIX = "//";
+ private final static String DRIVER_NAME = "PhoenixEmbeddedDriver";
private static final String TERMINATOR = "" + PhoenixRuntime.JDBC_PROTOCOL_TERMINATOR;
private static final String DELIMITERS = TERMINATOR + PhoenixRuntime.JDBC_PROTOCOL_SEPARATOR;
private static final String TEST_URL_AT_END = "" + PhoenixRuntime.JDBC_PROTOCOL_TERMINATOR + PHOENIX_TEST_DRIVER_URL_PARAM;
@@ -68,22 +70,17 @@ public abstract class PhoenixEmbeddedDriver implements Driver, org.apache.phoeni
public final static String MINOR_VERSION_PROP = "DriverMinorVersion";
public final static String DRIVER_NAME_PROP = "DriverName";
- private final ReadOnlyProps defaultProps;
+ public static final ReadOnlyProps DEFFAULT_PROPS = new ReadOnlyProps(
+ ImmutableMap.of(
+ MAJOR_VERSION_PROP, Integer.toString(MetaDataProtocol.PHOENIX_MAJOR_VERSION),
+ MINOR_VERSION_PROP, Integer.toString(MetaDataProtocol.PHOENIX_MINOR_VERSION),
+ DRIVER_NAME_PROP, DRIVER_NAME));
PhoenixEmbeddedDriver() {
- Map<String, String> defaultPropsMap = Maps.newHashMapWithExpectedSize(3);
- defaultPropsMap.put(MAJOR_VERSION_PROP, Integer.toString(getMajorVersion()));
- defaultPropsMap.put(MINOR_VERSION_PROP, Integer.toString(getMinorVersion()));
- defaultPropsMap.put(DRIVER_NAME_PROP, getDriverName());
- defaultProps = new ReadOnlyProps(defaultPropsMap);
}
protected ReadOnlyProps getDefaultProps() {
- return defaultProps;
- }
-
- private String getDriverName() {
- return this.getClass().getName();
+ return DEFFAULT_PROPS;
}
abstract public QueryServices getQueryServices();
@@ -125,7 +122,7 @@ public abstract class PhoenixEmbeddedDriver implements Driver, org.apache.phoeni
}
Properties augmentedInfo = PropertiesUtil.deepCopy(info);
- augmentedInfo.putAll(defaultProps.asMap());
+ augmentedInfo.putAll(getDefaultProps().asMap());
ConnectionQueryServices connectionServices = getConnectionQueryServices(url, augmentedInfo);
PhoenixConnection connection = connectionServices.connect(url, augmentedInfo);
return connection;
http://git-wip-us.apache.org/repos/asf/phoenix/blob/05971c0c/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
index 7bdab7b..cdda1f1 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/query/BaseTest.java
@@ -90,6 +90,7 @@ import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.Date;
+import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -102,8 +103,6 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import javax.annotation.Nonnull;
@@ -120,6 +119,7 @@ import org.apache.hadoop.hbase.util.Bytes;
import org.apache.phoenix.end2end.BaseClientManagedTimeIT;
import org.apache.phoenix.end2end.BaseHBaseManagedTimeIT;
import org.apache.phoenix.jdbc.PhoenixDatabaseMetaData;
+import org.apache.phoenix.jdbc.PhoenixEmbeddedDriver;
import org.apache.phoenix.jdbc.PhoenixTestDriver;
import org.apache.phoenix.schema.NewerTableAlreadyExistsException;
import org.apache.phoenix.schema.PTableType;
@@ -131,7 +131,8 @@ import org.apache.phoenix.util.PropertiesUtil;
import org.apache.phoenix.util.QueryUtil;
import org.apache.phoenix.util.ReadOnlyProps;
import org.apache.phoenix.util.SchemaUtil;
-import org.junit.Assert;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
@@ -153,7 +154,7 @@ import com.google.common.collect.Sets;
*/
public abstract class BaseTest {
private static final Map<String,String> tableDDLMap;
- private static Logger logger = Logger.getLogger("BaseTest.class");
+ private static final Logger logger = LoggerFactory.getLogger(BaseTest.class);
static {
ImmutableMap.Builder<String,String> builder = ImmutableMap.builder();
@@ -554,7 +555,7 @@ public abstract class BaseTest {
try {
utility.shutdownMiniCluster();
} catch (Exception e) {
- logger.log(Level.WARNING, "Exception caught when shutting down mini cluster: " + e.getMessage());
+ logger.warn("Exception caught when shutting down mini cluster", e);
}
}
});
@@ -641,25 +642,32 @@ public abstract class BaseTest {
* @return an initialized and registered {@link PhoenixTestDriver}
*/
protected static PhoenixTestDriver initAndRegisterDriver(String url, ReadOnlyProps props) throws Exception {
- PhoenixTestDriver driver = new PhoenixTestDriver(props);
- DriverManager.registerDriver(driver);
- Assert.assertTrue(DriverManager.getDriver(url) == driver);
- Connection conn = driver.connect(url, PropertiesUtil.deepCopy(TEST_PROPERTIES));
+ PhoenixTestDriver newDriver = new PhoenixTestDriver(props);
+ DriverManager.registerDriver(newDriver);
+ Driver oldDriver = DriverManager.getDriver(url);
+ if (oldDriver != newDriver) {
+ destroyDriver(oldDriver);
+ }
+ Connection conn = newDriver.connect(url, PropertiesUtil.deepCopy(TEST_PROPERTIES));
conn.close();
- return driver;
+ return newDriver;
}
//Close and unregister the driver.
- protected static boolean destroyDriver(PhoenixTestDriver driver) {
+ protected static boolean destroyDriver(Driver driver) {
if (driver != null) {
+ assert(driver instanceof PhoenixEmbeddedDriver);
+ PhoenixEmbeddedDriver pdriver = (PhoenixEmbeddedDriver)driver;
try {
try {
- driver.close();
+ pdriver.close();
return true;
} finally {
DriverManager.deregisterDriver(driver);
}
- } catch (Exception ignored) {}
+ } catch (Exception e) {
+ logger.warn("Unable to close registered driver: " + driver, e);
+ }
}
return false;
}