[1/2] curator git commit: Fix test case with testDeleteChildrenConcurrently

2018-12-09 Thread randgalt
Repository: curator
Updated Branches:
  refs/heads/CURATOR-490 b94844af5 -> caf2a9d81


Fix test case with testDeleteChildrenConcurrently


Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/05f6a567
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/05f6a567
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/05f6a567

Branch: refs/heads/CURATOR-490
Commit: 05f6a56730a956b5a977a11e05aa875fe862dedf
Parents: 2adccc5
Author: hebelala 
Authored: Sun Dec 9 16:21:27 2018 +0800
Committer: hebelala 
Committed: Sun Dec 9 16:21:27 2018 +0800

--
 .../framework/imps/TestFrameworkEdges.java  | 70 +++-
 1 file changed, 54 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/curator/blob/05f6a567/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFrameworkEdges.java
--
diff --git 
a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFrameworkEdges.java
 
b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFrameworkEdges.java
index f9b16af..a28d6c5 100644
--- 
a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFrameworkEdges.java
+++ 
b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFrameworkEdges.java
@@ -45,10 +45,13 @@ import org.apache.zookeeper.KeeperException;
 import org.apache.zookeeper.WatchedEvent;
 import org.apache.zookeeper.Watcher;
 import org.apache.zookeeper.data.Stat;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.testng.Assert;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 import java.util.List;
+import java.util.Random;
 import java.util.concurrent.ArrayBlockingQueue;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.CountDownLatch;
@@ -59,10 +62,13 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 public class TestFrameworkEdges extends BaseClassForTests
 {
+
+private final Logger log = LoggerFactory.getLogger(getClass());
 private final Timing2 timing = new Timing2();
 
 @BeforeClass
-public static void setUpClass() {
+public static void setUpClass()
+{
 System.setProperty("zookeeper.extendedTypesEnabled", "true");
 }
 
@@ -668,12 +674,13 @@ public class TestFrameworkEdges extends BaseClassForTests
 
client.create().creatingParentsIfNeeded().forPath("/parent/child" + i);
 }
 
-final CountDownLatch countDownLatch = new CountDownLatch(1);
+final CountDownLatch latch = new CountDownLatch(1);
 new Thread(new Runnable()
 {
 @Override
 public void run()
 {
+long start = System.currentTimeMillis();
 try
 {
 
client.delete().deletingChildrenIfNeeded().forPath("/parent");
@@ -686,35 +693,66 @@ public class TestFrameworkEdges extends BaseClassForTests
 }
 else
 {
-Assert.fail("unknown exception", e);
+Assert.fail("unexpected exception", e);
 }
 }
 finally
 {
-countDownLatch.countDown();
+log.info("client has deleted children, it costs: 
{}ms", System.currentTimeMillis() - start);
+latch.countDown();
 }
 }
 }).start();
 
-Thread.sleep(20L);
-try
-{
-client2.delete().forPath("/parent/child" + (childCount / 2));
-}
-catch ( Exception e )
+boolean threadDeleted = false;
+boolean client2Deleted = false;
+Random random = new Random();
+for ( int i = 0; i < childCount; i++ )
 {
-if ( e instanceof KeeperException.NoNodeException )
+String child = "/parent/child" + random.nextInt(childCount);
+try
 {
-Assert.fail("client2 delete failed, shouldn't throw 
NoNodeException", e);
+if ( !threadDeleted )
+{
+Stat stat = client2.checkExists().forPath(child);
+if ( stat == null )
+{
+// the thread client has begin deleted the children
+threadDeleted = true;
+log.info("client has deleted the child {}", child);
+}
+ 

curator git commit: Fix test case with testDeleteChildrenConcurrently

2018-12-09 Thread randgalt
Repository: curator
Updated Branches:
  refs/heads/master 2adccc549 -> 05f6a5673


Fix test case with testDeleteChildrenConcurrently


Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/05f6a567
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/05f6a567
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/05f6a567

Branch: refs/heads/master
Commit: 05f6a56730a956b5a977a11e05aa875fe862dedf
Parents: 2adccc5
Author: hebelala 
Authored: Sun Dec 9 16:21:27 2018 +0800
Committer: hebelala 
Committed: Sun Dec 9 16:21:27 2018 +0800

--
 .../framework/imps/TestFrameworkEdges.java  | 70 +++-
 1 file changed, 54 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/curator/blob/05f6a567/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFrameworkEdges.java
--
diff --git 
a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFrameworkEdges.java
 
b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFrameworkEdges.java
index f9b16af..a28d6c5 100644
--- 
a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFrameworkEdges.java
+++ 
b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestFrameworkEdges.java
@@ -45,10 +45,13 @@ import org.apache.zookeeper.KeeperException;
 import org.apache.zookeeper.WatchedEvent;
 import org.apache.zookeeper.Watcher;
 import org.apache.zookeeper.data.Stat;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.testng.Assert;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 import java.util.List;
+import java.util.Random;
 import java.util.concurrent.ArrayBlockingQueue;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.CountDownLatch;
@@ -59,10 +62,13 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 public class TestFrameworkEdges extends BaseClassForTests
 {
+
+private final Logger log = LoggerFactory.getLogger(getClass());
 private final Timing2 timing = new Timing2();
 
 @BeforeClass
-public static void setUpClass() {
+public static void setUpClass()
+{
 System.setProperty("zookeeper.extendedTypesEnabled", "true");
 }
 
@@ -668,12 +674,13 @@ public class TestFrameworkEdges extends BaseClassForTests
 
client.create().creatingParentsIfNeeded().forPath("/parent/child" + i);
 }
 
-final CountDownLatch countDownLatch = new CountDownLatch(1);
+final CountDownLatch latch = new CountDownLatch(1);
 new Thread(new Runnable()
 {
 @Override
 public void run()
 {
+long start = System.currentTimeMillis();
 try
 {
 
client.delete().deletingChildrenIfNeeded().forPath("/parent");
@@ -686,35 +693,66 @@ public class TestFrameworkEdges extends BaseClassForTests
 }
 else
 {
-Assert.fail("unknown exception", e);
+Assert.fail("unexpected exception", e);
 }
 }
 finally
 {
-countDownLatch.countDown();
+log.info("client has deleted children, it costs: 
{}ms", System.currentTimeMillis() - start);
+latch.countDown();
 }
 }
 }).start();
 
-Thread.sleep(20L);
-try
-{
-client2.delete().forPath("/parent/child" + (childCount / 2));
-}
-catch ( Exception e )
+boolean threadDeleted = false;
+boolean client2Deleted = false;
+Random random = new Random();
+for ( int i = 0; i < childCount; i++ )
 {
-if ( e instanceof KeeperException.NoNodeException )
+String child = "/parent/child" + random.nextInt(childCount);
+try
 {
-Assert.fail("client2 delete failed, shouldn't throw 
NoNodeException", e);
+if ( !threadDeleted )
+{
+Stat stat = client2.checkExists().forPath(child);
+if ( stat == null )
+{
+// the thread client has begin deleted the children
+threadDeleted = true;
+log.info("client has deleted the child {}", child);
+}
+