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(); } }