On 4 November 2011 16:20, <pste...@apache.org> wrote: > Author: psteitz > Date: Fri Nov 4 16:20:05 2011 > New Revision: 1197626 > > URL: http://svn.apache.org/viewvc?rev=1197626&view=rev > Log: > Changed default non-secure generator to Well19937c and changed default seeds > to add system identity haschode to timestamp. JIRA: MATH-701.
You've actually use the object hashcode - did you mean to use j.l.System.indentityHashcode() ? > Modified: > > commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java > > Modified: > commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java > URL: > http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java?rev=1197626&r1=1197625&r2=1197626&view=diff > ============================================================================== > --- > commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java > (original) > +++ > commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java > Fri Nov 4 16:20:05 2011 > @@ -49,7 +49,7 @@ import org.apache.commons.math.util.Resi > * instance to generate non-secure data and a {@link > java.security.SecureRandom} > * instance to provide data for the <code>nextSecureXxx</code> methods. If no > * <code>RandomGenerator</code> is provided in the constructor, the default is > - * to use a generator based on {@link java.util.Random}. To plug in a > different > + * to use a {@link Well19937c} generator. To plug in a different > * implementation, either implement <code>RandomGenerator</code> directly or > * extend {@link AbstractRandomGenerator}. > * <p> > @@ -81,10 +81,10 @@ import org.apache.commons.math.util.Resi > * When a new <code>RandomDataImpl</code> is created, the underlying random > * number generators are <strong>not</strong> initialized. If you do not > * explicitly seed the default non-secure generator, it is seeded with the > - * current time in milliseconds on first use. The same holds for the secure > - * generator. If you provide a <code>RandomGenerator</code> to the > constructor, > - * however, this generator is not reseeded by the constructor nor is it > reseeded > - * on first use.</li> > + * current time in milliseconds plus the system identity hash code on first > use. > + * The same holds for the secure generator. If you provide a > <code>RandomGenerator</code> > + * to the constructor, however, this generator is not reseeded by the > constructor > + * nor is it reseeded on first use.</li> > * <li> > * The <code>reSeed</code> and <code>reSeedSecure</code> methods delegate to > the > * corresponding methods on the underlying <code>RandomGenerator</code> and > @@ -827,7 +827,8 @@ public class RandomDataImpl implements R > /** > * Returns the RandomGenerator used to generate non-secure random data. > * <p> > - * Creates and initializes a default generator if null. > + * Creates and initializes a default generator if null. Uses a {@link > Well19937c} > + * generator with {@code System.currentTimeMillis() + hashCode()} as the > default seed. > * </p> > * > * @return the Random used to generate random data > @@ -835,8 +836,7 @@ public class RandomDataImpl implements R > */ > private RandomGenerator getRan() { > if (rand == null) { > - rand = new JDKRandomGenerator(); > - rand.setSeed(System.currentTimeMillis()); > + rand = new Well19937c(System.currentTimeMillis() + hashCode()); > } > return rand; > } > @@ -844,7 +844,8 @@ public class RandomDataImpl implements R > /** > * Returns the SecureRandom used to generate secure random data. > * <p> > - * Creates and initializes if null. > + * Creates and initializes if null. Uses > + * {@code System.currentTimeMillis() + hashCode()} as the default seed. > * </p> > * > * @return the SecureRandom used to generate secure random data > @@ -852,7 +853,7 @@ public class RandomDataImpl implements R > private SecureRandom getSecRan() { > if (secRand == null) { > secRand = new SecureRandom(); > - secRand.setSeed(System.currentTimeMillis()); > + secRand.setSeed(System.currentTimeMillis() + hashCode()); > } > return secRand; > } > > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org