Skip to content

Commit

Permalink
Use System.nanoTime() for Random seed in SocketUtils
Browse files Browse the repository at this point in the history
Prior to this commit, SocketUtils used System.currentTimeMillis() for
the seed for the java.util.Random instance used internally. The use of
the milliseconds value returned by currentTimeMillis() can lead to
collisions for randomly selected free ports for tests executing in
parallel on the same computer.

This commit therefore switches to System.nanoTime() for the Random seed
used in SocketUtils in an attempt to avoid such collisions for tests
executing in parallel in different JVMs on the same computer.

Closes gh-25321
  • Loading branch information
sbrannen committed Jul 3, 2020
1 parent 008a0a1 commit 35582de
Showing 1 changed file with 2 additions and 2 deletions.
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -54,7 +54,7 @@ public class SocketUtils {
public static final int PORT_RANGE_MAX = 65535;


private static final Random random = new Random(System.currentTimeMillis());
private static final Random random = new Random(System.nanoTime());


/**
Expand Down

0 comments on commit 35582de

Please sign in to comment.