You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by st...@apache.org on 2015/11/09 11:13:58 UTC
svn commit: r1713364 - in /sling/trunk/bundles/extensions/discovery:
base/src/test/java/org/apache/sling/discovery/base/its/setup/VirtualInstance.java
impl/src/test/java/org/apache/sling/discovery/impl/cluster/voting/VotingHandlerTest.java
Author: stefanegli
Date: Mon Nov 9 10:13:58 2015
New Revision: 1713364
URL: http://svn.apache.org/viewvc?rev=1713364&view=rev
Log:
SLING-5279 : tests made more stable wrt stopping a VirtualInstance that was likely not done yet and interfered with subsequent test runs
Modified:
sling/trunk/bundles/extensions/discovery/base/src/test/java/org/apache/sling/discovery/base/its/setup/VirtualInstance.java
sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/cluster/voting/VotingHandlerTest.java
Modified: sling/trunk/bundles/extensions/discovery/base/src/test/java/org/apache/sling/discovery/base/its/setup/VirtualInstance.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/base/src/test/java/org/apache/sling/discovery/base/its/setup/VirtualInstance.java?rev=1713364&r1=1713363&r2=1713364&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/discovery/base/src/test/java/org/apache/sling/discovery/base/its/setup/VirtualInstance.java (original)
+++ sling/trunk/bundles/extensions/discovery/base/src/test/java/org/apache/sling/discovery/base/its/setup/VirtualInstance.java Mon Nov 9 10:13:58 2015
@@ -105,21 +105,37 @@ public class VirtualInstance {
private final int intervalInSeconds;
- private boolean stopped_ = false;
+ private boolean stopping_ = false;
- public ViewCheckerRunner(int intervalInSeconds) {
+ private volatile boolean stopped_ = false;
+
+ public ViewCheckerRunner(int intervalInSeconds) {
this.intervalInSeconds = intervalInSeconds;
}
public synchronized void stop() {
logger.info("Stopping Instance ["+slingId+"]");
- stopped_ = true;
+ stopping_ = true;
+ this.notifyAll();
+ }
+
+ public boolean hasStopped() {
+ return stopped_;
}
public void run() {
+ try{
+ doRun();
+ } finally {
+ stopped_ = true;
+ logger.info("Instance ["+slingId+"] stopped.");
+ }
+ }
+
+ public void doRun() {
while(true) {
synchronized(this) {
- if (stopped_) {
+ if (stopping_) {
logger.info("Instance ["+slingId+"] stopps.");
return;
}
@@ -129,11 +145,13 @@ public class VirtualInstance {
} catch(Exception e) {
logger.error("run: ping connector for slingId="+slingId+" threw exception: "+e, e);
}
- try {
- Thread.sleep(intervalInSeconds*1000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- return;
+ synchronized(this) {
+ try {
+ this.wait(intervalInSeconds*1000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ return;
+ }
}
}
}
@@ -318,6 +336,11 @@ public class VirtualInstance {
public void stopViewChecker() throws Throwable {
if (viewCheckerRunner!=null) {
viewCheckerRunner.stop();
+ while(!viewCheckerRunner.hasStopped()) {
+ logger.info("stopViewChecker: ["+getDebugName()+"] waiting for viewCheckerRunner to stop");
+ Thread.sleep(500);
+ }
+ logger.info("stopViewChecker: ["+getDebugName()+"] viewCheckerRunner stopped");
viewCheckerRunner = null;
}
try{
Modified: sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/cluster/voting/VotingHandlerTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/cluster/voting/VotingHandlerTest.java?rev=1713364&r1=1713363&r2=1713364&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/cluster/voting/VotingHandlerTest.java (original)
+++ sling/trunk/bundles/extensions/discovery/impl/src/test/java/org/apache/sling/discovery/impl/cluster/voting/VotingHandlerTest.java Mon Nov 9 10:13:58 2015
@@ -126,9 +126,13 @@ public class VotingHandlerTest {
@After
public void tearDown() throws Exception {
- resourceResolver.close();
+ if (resourceResolver != null) {
+ resourceResolver.close();
+ }
- threadPool.shutdown();
+ if (threadPool != null) {
+ threadPool.shutdown();
+ }
}
@Test