You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2013/04/02 21:10:35 UTC
svn commit: r1463696 -
/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestDynamicCombinedConfiguration.java
Author: oheger
Date: Tue Apr 2 19:10:34 2013
New Revision: 1463696
URL: http://svn.apache.org/r1463696
Log:
Fixed a race condition in a test case.
Modified:
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestDynamicCombinedConfiguration.java
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestDynamicCombinedConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestDynamicCombinedConfiguration.java?rev=1463696&r1=1463695&r2=1463696&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestDynamicCombinedConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestDynamicCombinedConfiguration.java Tue Apr 2 19:10:34 2013
@@ -48,10 +48,10 @@ public class TestDynamicCombinedConfigur
private static String PATTERN = "${sys:Id}";
private static String PATTERN1 = "target/test-classes/testMultiConfiguration_${sys:Id}.xml";
private static String DEFAULT_FILE = "target/test-classes/testMultiConfiguration_default.xml";
- private static final File MULTI_TENENT_FILE = new File(
- "conf/testMultiTenentConfigurationBuilder4.xml");
- private static final File MULTI_DYNAMIC_FILE = new File(
- "conf/testMultiTenentConfigurationBuilder5.xml");
+ private static final File MULTI_TENENT_FILE = ConfigurationAssert
+ .getTestFile("testMultiTenentConfigurationBuilder4.xml");
+ private static final File MULTI_DYNAMIC_FILE = ConfigurationAssert
+ .getTestFile("testMultiTenentConfigurationBuilder5.xml");
/** Constant for the number of test threads. */
private static final int THREAD_COUNT = 3;
@@ -208,8 +208,16 @@ public class TestDynamicCombinedConfigur
output.getParentFile().mkdir();
copyFile(input, output);
- ReloadingCombinedConfigurationBuilder builder = new ReloadingCombinedConfigurationBuilder();
- builder.configure(new FileBasedBuilderParametersImpl().setFile(MULTI_DYNAMIC_FILE));
+ ReloadingCombinedConfigurationBuilder builder =
+ new ReloadingCombinedConfigurationBuilder();
+ builder.configure(Parameters
+ .combined()
+ .setDefinitionBuilderParameters(
+ new FileBasedBuilderParametersImpl()
+ .setFile(MULTI_DYNAMIC_FILE))
+ .addChildParameters(
+ new FileBasedBuilderParametersImpl()
+ .setReloadingRefreshDelay(1L)));
CombinedConfiguration config = builder.getConfiguration();
assertEquals("Wrong property value (1)", "ID0001",
config.getString("Product/FIIndex/FI[@id='123456781']"));
@@ -312,10 +320,12 @@ public class TestDynamicCombinedConfigur
private volatile boolean running = true;
private volatile boolean failed = false;
private final CombinedConfigurationBuilder builder;
+ private final Random random;
public ReaderThread(CombinedConfigurationBuilder b)
{
builder = b;
+ random = new Random();
}
@Override
@@ -340,12 +350,18 @@ public class TestDynamicCombinedConfigur
{
failed = true;
}
+ int sleepTime = random.nextInt(75);
+ Thread.sleep(sleepTime);
}
}
catch (ConfigurationException cex)
{
failed = true;
}
+ catch(InterruptedException iex)
+ {
+ Thread.currentThread().interrupt();
+ }
}
public boolean failed()
@@ -356,6 +372,7 @@ public class TestDynamicCombinedConfigur
public void shutdown()
{
running = false;
+ interrupt();
}
}