s...@apache.org wrote: > Author: sebb > Date: Wed Dec 30 15:08:09 2009 > New Revision: 894641 > > URL: http://svn.apache.org/viewvc?rev=894641&view=rev > Log: > Fix multi-threading (data visibility) bugs in PoolTest nested class > Show details of Exception if it is not excepted > Improve failure message > > Modified: > > commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/datasources/TestPerUserPoolDataSource.java > > Modified: > commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/datasources/TestPerUserPoolDataSource.java > URL: > http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/datasources/TestPerUserPoolDataSource.java?rev=894641&r1=894640&r2=894641&view=diff > ============================================================================== > --- > commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/datasources/TestPerUserPoolDataSource.java > (original) > +++ > commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/datasources/TestPerUserPoolDataSource.java > Wed Dec 30 15:08:09 2009 > @@ -373,11 +373,11 @@ > } > > public void testMultipleThreads() throws Exception { > - assertTrue(multipleThreads(1)); > - assertTrue(!multipleThreads(2 * (int)(getMaxWait()))); > + assertTrue("Expected multiple threads to succeed with > timeout=1",multipleThreads(1, false)); > + assertTrue("Expected multiple threads to fail with > timeout=2*maxWait",!multipleThreads(2 * (int)(getMaxWait()), true)); > } > > - private boolean multipleThreads(int holdTime) throws Exception { > + private boolean multipleThreads(final int holdTime,final boolean > expectError) throws Exception { > long startTime = System.currentTimeMillis(); > final boolean[] success = new boolean[1]; > success[0] = true; > @@ -394,7 +394,7 @@ > pts[i].stop(); > } > > - //e.printStackTrace(); > + if (!expectError) e.printStackTrace(); > success[0] = false; > } > }; > @@ -420,11 +420,11 @@ > /** > * The number of milliseconds to hold onto a database connection > */ > - private int connHoldTime; > + private final int connHoldTime; > > - private boolean isRun; > + private volatile boolean isRun; > > - private String state; > + private volatile String state;
After this change, you see no failures? Thanks. > > protected PoolTest(ThreadGroup threadGroup, int connHoldTime) { > this.connHoldTime = connHoldTime; > @@ -458,7 +458,7 @@ > } catch (RuntimeException e) { > throw e; > } catch (Exception e) { > - throw new RuntimeException(e.toString()); > + throw (RuntimeException) new > RuntimeException(e.toString()).initCause(e); > } > } > } > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org