http://git-wip-us.apache.org/repos/asf/phoenix/blob/6b1d3c78/phoenix-core/src/it/java/org/apache/phoenix/end2end/NotQueryIT.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/NotQueryIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/NotQueryIT.java
index e7ced92..0e6562c 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/NotQueryIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/NotQueryIT.java
@@ -41,6 +41,7 @@ import java.util.Collection;
 import java.util.Properties;
 
 import org.apache.phoenix.util.PhoenixRuntime;
+import org.apache.phoenix.util.PropertiesUtil;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
@@ -66,7 +67,7 @@ public class NotQueryIT extends QueryIT {
     @Test
     public void testNotInList() throws Exception {
         String query = "SELECT entity_id FROM aTable WHERE organization_id=? 
and entity_id NOT IN (?,?,?,?,?,?)";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -94,7 +95,7 @@ public class NotQueryIT extends QueryIT {
     @Test
     public void testNotInListOfFloat() throws Exception {
         String query = "SELECT a_float FROM aTable WHERE organization_id=? and 
a_float NOT IN (?,?,?,?,?,?)";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -122,7 +123,7 @@ public class NotQueryIT extends QueryIT {
     @Test
     public void testNotInListOfDouble() throws Exception {
         String query = "SELECT a_double FROM aTable WHERE organization_id=? 
and a_double NOT IN (?,?,?,?,?,?)";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -151,7 +152,7 @@ public class NotQueryIT extends QueryIT {
     public void testNotEquals() throws Exception {
         String query = "SELECT entity_id -- and here comment\n" + 
         "FROM aTable WHERE organization_id=? and a_integer != 1 and a_integer 
<= 2";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -170,7 +171,7 @@ public class NotQueryIT extends QueryIT {
     public void testNotEqualsByTinyInt() throws Exception {
         String query = "SELECT a_byte -- and here comment\n" + 
         "FROM aTable WHERE organization_id=? and a_byte != 1 and a_byte <= 2";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -189,7 +190,7 @@ public class NotQueryIT extends QueryIT {
     public void testNotEqualsBySmallInt() throws Exception {
         String query = "SELECT a_short -- and here comment\n" + 
         "FROM aTable WHERE organization_id=? and a_short != 128 and a_short 
!=0 and a_short <= 129";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -208,7 +209,7 @@ public class NotQueryIT extends QueryIT {
     public void testNotEqualsByFloat() throws Exception {
         String query = "SELECT a_float -- and here comment\n" + 
         "FROM aTable WHERE organization_id=? and a_float != 0.01d and a_float 
<= 0.02d";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -227,7 +228,7 @@ public class NotQueryIT extends QueryIT {
     public void testNotEqualsByUnsignedFloat() throws Exception {
         String query = "SELECT a_unsigned_float -- and here comment\n" + 
         "FROM aTable WHERE organization_id=? and a_unsigned_float != 0.01d and 
a_unsigned_float <= 0.02d";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -246,7 +247,7 @@ public class NotQueryIT extends QueryIT {
     public void testNotEqualsByDouble() throws Exception {
         String query = "SELECT a_double -- and here comment\n" + 
         "FROM aTable WHERE organization_id=? and a_double != 0.0001d and 
a_double <= 0.0002d";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -265,7 +266,7 @@ public class NotQueryIT extends QueryIT {
     public void testNotEqualsByUnsignedDouble() throws Exception {
         String query = "SELECT a_unsigned_double -- and here comment\n" + 
         "FROM aTable WHERE organization_id=? and a_unsigned_double != 0.0001d 
and a_unsigned_double <= 0.0002d";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -284,7 +285,7 @@ public class NotQueryIT extends QueryIT {
     public void testNotEquals2() throws Exception {
         String query = "SELECT entity_id FROM // one more comment  \n" +
         "aTable WHERE organization_id=? and not a_integer = 1 and a_integer <= 
2";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6b1d3c78/phoenix-core/src/it/java/org/apache/phoenix/end2end/OrderByIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/OrderByIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/OrderByIT.java
index 56f81eb..14a89cb 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/OrderByIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/OrderByIT.java
@@ -38,6 +38,7 @@ import java.sql.ResultSet;
 import java.util.Properties;
 
 import org.apache.phoenix.util.PhoenixRuntime;
+import org.apache.phoenix.util.PropertiesUtil;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -51,7 +52,7 @@ public class OrderByIT extends BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         initATableValues(tenantId, getDefaultSplits(tenantId), null, ts);
         String query = "SELECT entity_id FROM aTable ORDER BY b_string, 
entity_id";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -89,7 +90,7 @@ public class OrderByIT extends BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         initATableValues(tenantId, getDefaultSplits(tenantId), null, ts);
         String query = "SELECT entity_id FROM aTable ORDER BY b_string || 
entity_id desc";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -128,7 +129,7 @@ public class OrderByIT extends BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         initATableValues(tenantId, getDefaultSplits(tenantId), null, ts);
         String query = "SELECT entity_id FROM aTable WHERE entity_id >= ? 
ORDER BY organization_id DESC, entity_id DESC";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6b1d3c78/phoenix-core/src/it/java/org/apache/phoenix/end2end/PercentileIT.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/PercentileIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/PercentileIT.java
index e14ac2c..b15a3e5 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/PercentileIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/PercentileIT.java
@@ -51,6 +51,7 @@ import java.util.Properties;
 
 import org.apache.phoenix.query.QueryConstants;
 import org.apache.phoenix.util.PhoenixRuntime;
+import org.apache.phoenix.util.PropertiesUtil;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -65,7 +66,7 @@ public class PercentileIT extends BaseClientManagedTimeIT {
 
         String query = "SELECT PERCENTILE_CONT(0.9) WITHIN GROUP (ORDER BY 
A_INTEGER ASC) FROM aTable";
 
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at
                                                                                
      // timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
@@ -90,7 +91,7 @@ public class PercentileIT extends BaseClientManagedTimeIT {
 
         String query = "SELECT PERCENTILE_CONT(0.9) WITHIN GROUP (ORDER BY 
A_INTEGER DESC) FROM aTable";
 
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at
                                                                                
      // timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
@@ -115,7 +116,7 @@ public class PercentileIT extends BaseClientManagedTimeIT {
 
         String query = "SELECT A_STRING, PERCENTILE_CONT(0.9) WITHIN GROUP 
(ORDER BY A_INTEGER ASC) FROM aTable GROUP BY A_STRING";
 
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at
                                                                                
      // timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
@@ -151,7 +152,7 @@ public class PercentileIT extends BaseClientManagedTimeIT {
 
         String query = "SELECT A_STRING, PERCENTILE_CONT(0.9) WITHIN GROUP 
(ORDER BY A_INTEGER ASC) AS PC FROM aTable GROUP BY A_STRING ORDER BY PC";
 
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at
                                                                                
      // timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
@@ -187,7 +188,7 @@ public class PercentileIT extends BaseClientManagedTimeIT {
 
                String query = "SELECT PERCENTILE_DISC(0.9) WITHIN GROUP (ORDER 
BY A_INTEGER ASC) FROM aTable";
 
-               Properties props = new Properties(TEST_PROPERTIES);
+               Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
                props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB,
                                Long.toString(ts + 2)); // Execute at
                                                                                
// timestamp 2
@@ -212,7 +213,7 @@ public class PercentileIT extends BaseClientManagedTimeIT {
 
                String query = "SELECT PERCENTILE_DISC(0.9) WITHIN GROUP (ORDER 
BY A_INTEGER DESC) FROM aTable";
 
-               Properties props = new Properties(TEST_PROPERTIES);
+               Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
                props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB,
                                Long.toString(ts + 2)); // Execute at
                                                                                
// timestamp 2
@@ -237,7 +238,7 @@ public class PercentileIT extends BaseClientManagedTimeIT {
 
         String query = "SELECT A_STRING, PERCENTILE_DISC(0.5) WITHIN GROUP 
(ORDER BY A_INTEGER ASC) FROM aTable GROUP BY A_STRING";
 
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at
                                                                                
      // timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
@@ -270,7 +271,7 @@ public class PercentileIT extends BaseClientManagedTimeIT {
 
         String query = "SELECT A_STRING, PERCENTILE_DISC(0.5) WITHIN GROUP 
(ORDER BY A_INTEGER ASC) FROM aTable GROUP BY A_STRING ORDER BY A_STRING DESC";
 
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at
                                                                                
      // timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
@@ -303,7 +304,7 @@ public class PercentileIT extends BaseClientManagedTimeIT {
 
         String query = "SELECT PERCENT_RANK(5) WITHIN GROUP (ORDER BY 
A_INTEGER ASC) FROM aTable";
 
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at
                                                                                
      // timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
@@ -328,7 +329,7 @@ public class PercentileIT extends BaseClientManagedTimeIT {
 
         String query = "SELECT PERCENT_RANK(-2) WITHIN GROUP (ORDER BY 
A_INTEGER ASC) FROM aTable";
 
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at
                                                                                
      // timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
@@ -353,7 +354,7 @@ public class PercentileIT extends BaseClientManagedTimeIT {
 
         String query = "SELECT PERCENT_RANK(8.9) WITHIN GROUP (ORDER BY 
A_INTEGER DESC) FROM aTable";
 
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at
                                                                                
      // timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
@@ -378,7 +379,7 @@ public class PercentileIT extends BaseClientManagedTimeIT {
 
         String query = "SELECT PERCENT_RANK('ba') WITHIN GROUP (ORDER BY 
A_STRING DESC) FROM aTable";
 
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at
                                                                                
      // timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
@@ -403,7 +404,7 @@ public class PercentileIT extends BaseClientManagedTimeIT {
 
         String query = "SELECT PERCENT_RANK(2) WITHIN GROUP (ORDER BY 
x_decimal ASC) FROM aTable";
 
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at
                                                                                
      // timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
@@ -428,7 +429,7 @@ public class PercentileIT extends BaseClientManagedTimeIT {
 
         String query = "SELECT PERCENT_RANK(2) WITHIN GROUP (ORDER BY 
x_decimal ASC), PERCENT_RANK(8.9) WITHIN GROUP (ORDER BY A_INTEGER DESC) FROM 
aTable";
 
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at
                                                                                
      // timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
@@ -514,7 +515,7 @@ public class PercentileIT extends BaseClientManagedTimeIT {
     }
 
     private static void populateINDEX_DATA_TABLETable() throws SQLException {
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
             String upsert = "UPSERT INTO " + INDEX_DATA_SCHEMA + 
QueryConstants.NAME_SEPARATOR + INDEX_DATA_TABLE

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6b1d3c78/phoenix-core/src/it/java/org/apache/phoenix/end2end/ProductMetricsIT.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ProductMetricsIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ProductMetricsIT.java
index 05a91c3..1daabb0 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ProductMetricsIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ProductMetricsIT.java
@@ -47,6 +47,7 @@ import org.apache.phoenix.schema.PDataType;
 import org.apache.phoenix.util.ByteUtil;
 import org.apache.phoenix.util.DateUtil;
 import org.apache.phoenix.util.PhoenixRuntime;
+import org.apache.phoenix.util.PropertiesUtil;
 import org.apache.phoenix.util.SchemaUtil;
 import org.apache.phoenix.util.TestUtil;
 import org.junit.Test;
@@ -109,7 +110,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         initTable(splits, ts);
 
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ ts; // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             assertNoRows(conn);
@@ -209,7 +210,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         initTable(splits, ts);
 
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ ts; // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             assertNoRows(conn);
@@ -313,7 +314,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String query = "SELECT count(1), feature f FROM PRODUCT_METRICS WHERE 
organization_id=? AND date >= to_date(?) AND date <= to_date(?) GROUP BY f";
         //String query = "SELECT count(1), feature FROM PRODUCT_METRICS GROUP 
BY feature";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -340,7 +341,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT sum(PRODUCT_METRICS.transactions) FROM 
PRODUCT_METRICS PRODUCT_METRICS";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -360,7 +361,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT date FROM PRODUCT_METRICS WHERE 
organization_id=? AND unique_users >= 30 AND transactions >= 300 AND 
cpu_utilization > 2 AND db_utilization > 0.5 AND io_time = 4000";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -381,7 +382,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT date FROM PRODUCT_METRICS WHERE 
organization_id=? AND (transactions = 10000 OR unset_column = 5 OR io_time = 
4000)";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -402,7 +403,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT count(1), feature FROM PRODUCT_METRICS WHERE 
organization_id=? AND date >= to_date(?) AND date <= to_date(?) GROUP BY 
feature HAVING 1=1";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -429,7 +430,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT count(1), feature FROM PRODUCT_METRICS WHERE 
organization_id=? AND date >= to_date(?) AND date <= to_date(?) GROUP BY 
feature HAVING 1=1 and 0=1";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -450,7 +451,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT count(1), feature FROM PRODUCT_METRICS WHERE 
organization_id=? AND date >= to_date(?) AND date <= to_date(?) GROUP BY 
feature HAVING count(1) >= 2";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -474,7 +475,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT sum(transactions), feature FROM PRODUCT_METRICS 
WHERE organization_id=? AND date >= to_date(?) AND date <= to_date(?) GROUP BY 
feature";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -501,7 +502,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT round(date,'hour',1) r,count(1) FROM 
PRODUCT_METRICS WHERE organization_id=? GROUP BY r";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -541,7 +542,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT round(date,'hour') FROM PRODUCT_METRICS WHERE 
organization_id=?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -584,7 +585,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT trunc(date,'hour'),count(1) FROM 
PRODUCT_METRICS WHERE organization_id=? GROUP BY trunc(date,'hour')";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -630,7 +631,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT feature,sum(unique_users) FROM PRODUCT_METRICS 
WHERE organization_id=? AND transactions > 0 GROUP BY feature";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -652,7 +653,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT feature,sum(unique_users) FROM PRODUCT_METRICS 
WHERE organization_id=? AND transactions > 0 GROUP BY feature HAVING feature=?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -673,7 +674,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT sum(1),sum(unique_users) FROM PRODUCT_METRICS 
WHERE organization_id=?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -695,7 +696,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT feature,region,sum(unique_users) FROM 
PRODUCT_METRICS WHERE organization_id=? GROUP BY feature,region";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -738,7 +739,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT round(date,'hour',1),feature,sum(unique_users) 
FROM PRODUCT_METRICS WHERE organization_id=? GROUP BY 
round(date,'hour',1),feature";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -789,7 +790,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT sum(cpu_utilization) FROM PRODUCT_METRICS WHERE 
organization_id=? AND date >= to_date(?) AND date <= to_date(?)";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -812,7 +813,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT 
sum(unique_users),sum(cpu_utilization),sum(transactions),sum(db_utilization),sum(response_time)
 FROM PRODUCT_METRICS WHERE organization_id=?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -838,7 +839,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT sum(transactions) FROM PRODUCT_METRICS WHERE 
organization_id=?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         String upsertUrl = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB 
+ "=" + ts; // Run updates at timestamp 0
         Connection upsertConn = DriverManager.getConnection(upsertUrl, props);
@@ -879,7 +880,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT 
sum(unique_users),sum(cpu_utilization),sum(transactions),sum(db_utilization),sum(response_time)
 FROM PRODUCT_METRICS WHERE organization_id=? HAVING sum(unique_users) > 200 
AND sum(db_utilization) > 4.5";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -905,7 +906,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT 
sum(unique_users),sum(cpu_utilization),sum(transactions),sum(db_utilization),sum(response_time)
 FROM PRODUCT_METRICS WHERE organization_id=? HAVING sum(unique_users) > 200 
AND sum(db_utilization) > 5";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -924,7 +925,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT 
min(unique_users),min(cpu_utilization),min(transactions),min(db_utilization),min('X'),min(response_time)
 FROM PRODUCT_METRICS WHERE organization_id=?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -951,7 +952,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT min(cpu_utilization) FROM PRODUCT_METRICS WHERE 
organization_id=?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -972,7 +973,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT 
max(unique_users),max(cpu_utilization),max(transactions),max(db_utilization),max('X'),max(response_time)
 FROM PRODUCT_METRICS WHERE organization_id=?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -999,7 +1000,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT feature,max(transactions) FROM PRODUCT_METRICS 
WHERE organization_id=? GROUP BY feature";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1027,7 +1028,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT count(1) FROM PRODUCT_METRICS";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1047,7 +1048,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT count(io_time),sum(io_time),avg(io_time) FROM 
PRODUCT_METRICS WHERE organization_id=?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1071,7 +1072,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT 
count(io_time),sum(io_time),avg(io_time),count(1) FROM PRODUCT_METRICS WHERE 
organization_id=? AND feature > ?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1099,7 +1100,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT avg(unique_users) FROM PRODUCT_METRICS WHERE 
organization_id=?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1120,7 +1121,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT AVG(DB_UTILIZATION) FROM PRODUCT_METRICS WHERE 
organization_id=?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1149,7 +1150,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         // LIMIT has no effect, since it's applied at the end and we'll always 
have a single row for ungrouped aggregation
         String query = "SELECT 
sum(unique_users),sum(cpu_utilization),sum(transactions),sum(db_utilization),sum(response_time)
 feature FROM PRODUCT_METRICS WHERE organization_id=? LIMIT 3";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1179,7 +1180,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT 
feature,sum(unique_users),sum(cpu_utilization),sum(transactions),sum(db_utilization),sum(response_time),count(1)
 c FROM PRODUCT_METRICS WHERE organization_id=? AND feature < ? GROUP BY 
feature";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1217,7 +1218,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT count(1), feature FROM PRODUCT_METRICS WHERE 
organization_id=? AND date >= to_date(?) AND date <= to_date(?) GROUP BY 
feature";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1243,7 +1244,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT feature,unique_users FROM PRODUCT_METRICS WHERE 
organization_id=? AND date >= to_date(?) AND feature > ?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1271,7 +1272,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT feature,unique_users FROM PRODUCT_METRICS WHERE 
organization_id=? AND feature > ?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1294,7 +1295,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT feature,unique_users FROM PRODUCT_METRICS WHERE 
organization_id=? AND feature >= ?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1320,7 +1321,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT feature,unique_users FROM PRODUCT_METRICS WHERE 
organization_id=? AND feature = ?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1344,7 +1345,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT feature,unique_users FROM PRODUCT_METRICS WHERE 
organization_id=? AND feature < ?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1376,7 +1377,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT feature,unique_users FROM PRODUCT_METRICS WHERE 
organization_id=? AND feature <= ?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1411,7 +1412,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         initTableValues(tenantId, getSplits(tenantId), ts);
         String query = "SELECT date, transactions t FROM PRODUCT_METRICS WHERE 
organization_id=? AND unique_users <= 30 ORDER BY t DESC LIMIT 2";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
 
         Connection conn = DriverManager.getConnection(url, props);
         try {
@@ -1438,7 +1439,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
                        "ORDER BY 100000-sumUsers";
 
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1465,7 +1466,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
                        "ORDER BY 1 desc,feature desc,r,feature,s";
 
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1504,7 +1505,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
                        "ORDER BY 100-c,feature";
 
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1543,7 +1544,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
                        "ORDER BY region nulls " + (nullsFirst ? "first" : 
"last");
 
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1575,7 +1576,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
     public void testFilterOnTrailingKeyColumn() throws Exception {
        long ts = nextTimestamp();
         String tenantId = getOrganizationId();
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, 
Long.toString(ts+1));
         Connection conn = DriverManager.getConnection(getUrl(), props);
 
@@ -1602,7 +1603,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT organization_id, date, feature FROM 
PRODUCT_METRICS WHERE substr(organization_id,1,3)=? AND date > to_date(?)";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1630,7 +1631,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT organization_id, date, feature FROM 
PRODUCT_METRICS WHERE organization_id=? AND date > to_date(?)";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1650,7 +1651,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT date, sum(UNIQUE_USERS) FROM PRODUCT_METRICS 
WHERE date > to_date(?) GROUP BY organization_id, date";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1675,7 +1676,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT date, sum(UNIQUE_USERS) FROM PRODUCT_METRICS 
WHERE date < to_date(?) GROUP BY organization_id, date";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1703,7 +1704,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT round(date,'HOUR'), sum(UNIQUE_USERS) FROM 
PRODUCT_METRICS WHERE date < to_date(?) GROUP BY organization_id, 
round(date,'HOUR')";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1728,7 +1729,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT round(date,'HOUR'), sum(UNIQUE_USERS) FROM 
PRODUCT_METRICS WHERE date <= to_date(?) GROUP BY organization_id, 
round(date,'HOUR')";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             initTableValues(tenantId, getSplits(tenantId), ts);
@@ -1753,7 +1754,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT feature FROM PRODUCT_METRICS WHERE 
organization_id = ? and trunc(date,'DAY')=?"; 
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             Date startDate = new Date(System.currentTimeMillis());
@@ -1777,7 +1778,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT feature FROM PRODUCT_METRICS WHERE 
organization_id = ? and ? - date > 3"; 
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             Date startDate = new Date(System.currentTimeMillis());
@@ -1803,7 +1804,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT feature FROM PRODUCT_METRICS WHERE 
organization_id = ? and ? - date - 1.5 > 3"; 
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             Date startDate = new Date(System.currentTimeMillis());
@@ -1831,7 +1832,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT feature FROM PRODUCT_METRICS WHERE 
organization_id = ? and date - 1 >= ?"; 
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             Date startDate = new Date(System.currentTimeMillis());
@@ -1855,7 +1856,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT feature FROM PRODUCT_METRICS WHERE 
organization_id = ? and date + 1 >= ?"; 
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             Date startDate = new Date(System.currentTimeMillis());
@@ -1881,7 +1882,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT feature FROM PRODUCT_METRICS WHERE 
organization_id = ? and date - current_date() > 8"; 
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             Date startDate = new Date(System.currentTimeMillis());
@@ -1903,7 +1904,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT feature FROM PRODUCT_METRICS WHERE 
organization_id = ? and date - current_time() > 8"; 
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             Date startDate = new Date(System.currentTimeMillis());
@@ -1925,7 +1926,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         String tenantId = getOrganizationId();
         String query = "SELECT feature FROM PRODUCT_METRICS WHERE 
organization_id = ? and TRUNC(date,'DAY') <= ?"; 
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             Date startDate = toDate("2013-01-01 00:00:00");
@@ -1946,7 +1947,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
     
     private static void destroyTable() throws Exception {
         // Physically delete HBase table so that splits occur as expected for 
each test
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         ConnectionQueryServices services = 
DriverManager.getConnection(getUrl(), 
props).unwrap(PhoenixConnection.class).getQueryServices();
         HBaseAdmin admin = services.getAdmin();
         try {
@@ -1978,7 +1979,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         "    unset_column decimal(31,10)\n" +
         "    CONSTRAINT pk PRIMARY KEY (organization_id, date, feature, 
unique_users)) salt_buckets=3";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts-1); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         conn.createStatement().execute(ddl);
         conn.close();
@@ -1988,7 +1989,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         initDateTableValues(tenantId, getSplits(tenantId), ts, startDate);
         // Add more date data
         url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts); 
// Run query at timestamp 5
-        props = new Properties(TEST_PROPERTIES);
+        props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         conn = DriverManager.getConnection(url, props);
         initDateTableValues(conn, tenantId, new 
Date(startDate.getTime()+TestUtil.MILLIS_IN_DAY*10), 2.0);
         initDateTableValues(conn, tenantId, new 
Date(startDate.getTime()+TestUtil.MILLIS_IN_DAY*20), 2.0);
@@ -1996,7 +1997,7 @@ public class ProductMetricsIT extends 
BaseClientManagedTimeIT {
         conn.close();
 
         url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" + (ts + 
5); // Run query at timestamp 5
-        props = new Properties(TEST_PROPERTIES);
+        props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         conn = DriverManager.getConnection(url, props);
         try {
             PreparedStatement statement = conn.prepareStatement("SELECT 
count(1) FROM PRODUCT_METRICS WHERE organization_id = ?");

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6b1d3c78/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryDatabaseMetaDataIT.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryDatabaseMetaDataIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryDatabaseMetaDataIT.java
index 647e15a..b9cd477 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryDatabaseMetaDataIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryDatabaseMetaDataIT.java
@@ -72,6 +72,7 @@ import org.apache.phoenix.schema.PTableType;
 import org.apache.phoenix.schema.ReadOnlyTableException;
 import org.apache.phoenix.schema.TableNotFoundException;
 import org.apache.phoenix.util.PhoenixRuntime;
+import org.apache.phoenix.util.PropertiesUtil;
 import org.apache.phoenix.util.SchemaUtil;
 import org.apache.phoenix.util.StringUtil;
 import org.apache.phoenix.util.TestUtil;
@@ -558,7 +559,7 @@ public class QueryDatabaseMetaDataIT extends 
BaseClientManagedTimeIT {
  
     @Test
     public void testCreateOnExistingTable() throws Exception {
-        PhoenixConnection pconn = DriverManager.getConnection(getUrl(), 
TEST_PROPERTIES).unwrap(PhoenixConnection.class);
+        PhoenixConnection pconn = DriverManager.getConnection(getUrl(), 
PropertiesUtil.deepCopy(TEST_PROPERTIES)).unwrap(PhoenixConnection.class);
         String tableName = MDTEST_NAME;
         String schemaName = MDTEST_SCHEMA_NAME;
         byte[] cfA = Bytes.toBytes(SchemaUtil.normalizeIdentifier("a"));
@@ -641,7 +642,7 @@ public class QueryDatabaseMetaDataIT extends 
BaseClientManagedTimeIT {
     @SuppressWarnings("deprecation")
     @Test
     public void testCreateViewOnExistingTable() throws Exception {
-        PhoenixConnection pconn = DriverManager.getConnection(getUrl(), 
TEST_PROPERTIES).unwrap(PhoenixConnection.class);
+        PhoenixConnection pconn = DriverManager.getConnection(getUrl(), 
PropertiesUtil.deepCopy(TEST_PROPERTIES)).unwrap(PhoenixConnection.class);
         String tableName = MDTEST_NAME;
         String schemaName = MDTEST_SCHEMA_NAME;
         byte[] cfB = Bytes.toBytes(SchemaUtil.normalizeIdentifier("b"));

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6b1d3c78/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryIT.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryIT.java
index a1a9ba7..9f5200e 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/QueryIT.java
@@ -68,6 +68,7 @@ import org.apache.phoenix.schema.SequenceNotFoundException;
 import org.apache.phoenix.util.ByteUtil;
 import org.apache.phoenix.util.MetaDataUtil;
 import org.apache.phoenix.util.PhoenixRuntime;
+import org.apache.phoenix.util.PropertiesUtil;
 import org.apache.phoenix.util.ReadOnlyProps;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -127,7 +128,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
          ts = nextTimestamp();
         initATableValues(tenantId, getDefaultSplits(tenantId), date=new 
Date(System.currentTimeMillis()), ts);
         if (indexDDL != null && indexDDL.length() > 0) {
-            Properties props = new Properties(TEST_PROPERTIES);
+            Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
             props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, 
Long.toString(ts));
             Connection conn = DriverManager.getConnection(getUrl(), props);
             conn.createStatement().execute(indexDDL);
@@ -168,7 +169,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
             "VALUES (?, ?, ?)";
         // Override value that was set at creation time
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 1);
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection upsertConn = DriverManager.getConnection(url, props);
         upsertConn.setAutoCommit(true); // Test auto commit
         PreparedStatement stmt = upsertConn.prepareStatement(updateStmt);
@@ -218,7 +219,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     @Test
     public void testGroupByPlusOne() throws Exception {
         String query = "SELECT a_integer+1 FROM aTable WHERE organization_id=? 
and a_integer = 5 GROUP BY a_integer+1";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -238,7 +239,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     @Test
     public void testToDateOnString() throws Exception { // TODO: test more 
conversion combinations
         String query = "SELECT a_string FROM aTable WHERE organization_id=? 
and a_integer = 5";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -258,7 +259,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     @Test
     public void testColumnOnBothSides() throws Exception {
         String query = "SELECT entity_id FROM aTable WHERE organization_id=? 
and a_string = b_string";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -275,7 +276,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
 
     public void testNoStringValue(String value) throws Exception {
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 1);
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection upsertConn = DriverManager.getConnection(url, props);
         upsertConn.setAutoCommit(true); // Test auto commit
         // Insert all rows at ts
@@ -313,7 +314,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     public void testPointInTimeScan() throws Exception {
         // Override value that was set at creation time
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 1); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection upsertConn = DriverManager.getConnection(url, props);
         String upsertStmt =
             "upsert into " +
@@ -361,7 +362,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
 
     @Test
     public void testPointInTimeSequence() throws Exception {
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn;
         ResultSet rs;
 
@@ -437,7 +438,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     public void testDateInList() throws Exception {
         String query = "SELECT entity_id FROM ATABLE WHERE a_date IN (?,?) AND 
a_integer < 4";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             PreparedStatement statement = conn.prepareStatement(query);
@@ -463,7 +464,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
             "VALUES (?, ?, ?)";
         // Override value that was set at creation time
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 1);
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection upsertConn = DriverManager.getConnection(url, props);
         upsertConn.setAutoCommit(true); // Test auto commit
         PreparedStatement stmt = upsertConn.prepareStatement(updateStmt);
@@ -518,7 +519,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     public void testSimpleInListStatement() throws Exception {
         String query = "SELECT entity_id FROM ATABLE WHERE organization_id=? 
AND a_integer IN (2,4)";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             PreparedStatement statement = conn.prepareStatement(query);
@@ -534,7 +535,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     public void testPartiallyQualifiedRVCInList() throws Exception {
         String query = "SELECT entity_id FROM ATABLE WHERE 
(a_integer,a_string) IN ((2,'a'),(5,'b'))";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             PreparedStatement statement = conn.prepareStatement(query);
@@ -549,7 +550,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     public void testFullyQualifiedRVCInList() throws Exception {
         String query = "SELECT entity_id FROM ATABLE WHERE 
(a_integer,a_string, organization_id,entity_id) IN 
((2,'a',:1,:2),(5,'b',:1,:3))";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             PreparedStatement statement = conn.prepareStatement(query);
@@ -571,7 +572,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     public void testInFilterOnKey() throws Exception {
         String query = "SELECT count(entity_id) FROM ATABLE WHERE 
organization_id IN (?,?)";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             PreparedStatement statement = conn.prepareStatement(query);
@@ -590,7 +591,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     public void testOneInListStatement() throws Exception {
         String query = "SELECT entity_id FROM ATABLE WHERE organization_id=? 
AND b_string IN (?)";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             PreparedStatement statement = conn.prepareStatement(query);
@@ -614,7 +615,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     public void testMixedTypeInListStatement() throws Exception {
         String query = "SELECT entity_id FROM ATABLE WHERE organization_id=? 
AND x_long IN (5, ?)";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts + 5); // Run query at timestamp 5
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         Connection conn = DriverManager.getConnection(url, props);
         try {
             PreparedStatement statement = conn.prepareStatement(query);
@@ -635,7 +636,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     @Test
     public void testIsNull() throws Exception {
         String query = "SELECT entity_id FROM aTable WHERE X_DECIMAL is null";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -662,7 +663,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     @Test
     public void testCountIsNull() throws Exception {
         String query = "SELECT count(1) FROM aTable WHERE X_DECIMAL is null";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -679,7 +680,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     @Test
     public void testCountIsNotNull() throws Exception {
         String query = "SELECT count(1) FROM aTable WHERE X_DECIMAL is not 
null";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -696,7 +697,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     @Test
     public void testIsNotNull() throws Exception {
         String query = "SELECT entity_id FROM aTable WHERE X_DECIMAL is not 
null";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -746,7 +747,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     @Test
     public void testRowKeySingleIn() throws Exception {
         String query = "SELECT entity_id FROM aTable WHERE organization_id=? 
and entity_id IN (?,?,?)";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -772,7 +773,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     @Test
     public void testRowKeyMultiIn() throws Exception {
         String query = "SELECT entity_id FROM aTable WHERE organization_id=? 
and entity_id IN (?,?,?) and a_string IN (?,?)";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {
@@ -803,7 +804,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     public void testSplitWithCachedMeta() throws Exception {
         // Tests that you don't get an ambiguous column exception when using 
the same alias as the column name
         String query = "SELECT a_string, b_string, count(1) FROM atable WHERE 
organization_id=? and entity_id<=? GROUP BY a_string,b_string";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         HBaseAdmin admin = null;
@@ -868,7 +869,7 @@ public class QueryIT extends BaseClientManagedTimeIT {
     @Test
     public void testColumnAliasMapping() throws Exception {
         String query = "SELECT a.a_string, aTable.b_string FROM aTable a WHERE 
?=organization_id and 5=a_integer ORDER BY a_string, b_string";
-        Properties props = new Properties(TEST_PROPERTIES);
+        Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
         props.setProperty(PhoenixRuntime.CURRENT_SCN_ATTRIB, Long.toString(ts 
+ 2)); // Execute at timestamp 2
         Connection conn = DriverManager.getConnection(getUrl(), props);
         try {

http://git-wip-us.apache.org/repos/asf/phoenix/blob/6b1d3c78/phoenix-core/src/it/java/org/apache/phoenix/end2end/ReadIsolationLevelIT.java
----------------------------------------------------------------------
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ReadIsolationLevelIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ReadIsolationLevelIT.java
index fb0016b..62a1e2b 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ReadIsolationLevelIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ReadIsolationLevelIT.java
@@ -30,6 +30,7 @@ import java.sql.ResultSet;
 import java.util.Properties;
 
 import org.apache.phoenix.util.PhoenixRuntime;
+import org.apache.phoenix.util.PropertiesUtil;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
@@ -123,7 +124,7 @@ public class ReadIsolationLevelIT extends 
BaseClientManagedTimeIT {
         initTableValues(ts, null);
         String query = "SELECT A_STRING FROM ATABLE WHERE ORGANIZATION_ID=? 
AND ENTITY_ID=?";
         String url = getUrl() + ";" + PhoenixRuntime.CURRENT_SCN_ATTRIB + "=" 
+ (ts+1);
-        Connection conn = DriverManager.getConnection(url, TEST_PROPERTIES);
+        Connection conn = DriverManager.getConnection(url, 
PropertiesUtil.deepCopy(TEST_PROPERTIES));
         conn.setAutoCommit(true);
         try {
             String tenantId = getOrganizationId();

Reply via email to