-
-
Notifications
You must be signed in to change notification settings - Fork 8.6k
Description
Meta -
OS: Windows 7
Selenium Version: 3.4.0
Browser: Chrome
Browser Version: 59.0.3071.86
Expected Behavior -
| this(new SimpleTimeLimiter(THREAD_POOL)); |
This URLChecker class should on construction create an instance of itself using a new SimpleTimeLimiter.
SimpleTimeLimiter comes from the guava project. This should run and return correctly.
Actual Behavior -
As of Guava 23.0r1, the SimpleTimeLimiter constructor being used is private, and this will cause an IllegalAccessError when creating a new instance of the UrlChecker class.
You can see the new code for 23.0r1 that does this line 51 at:
https://github.com/google/guava/blob/master/guava/src/com/google/common/util/concurrent/SimpleTimeLimiter.java#L51
However, you can see on line 67:
https://github.com/google/guava/blob/master/guava/src/com/google/common/util/concurrent/SimpleTimeLimiter.java#L67
that the developers have added in a create method.
It could be fixed as simply by changing:
public UrlChecker() { this(new SimpleTimeLimiter(THREAD_POOL)); }
to
public UrlChecker() { this(SimpleTimeLimiter.create(THREAD_POOL)); }
However, it seems that older version of guava may not have included this create method, so this may not work unless a full transition to 23.0 is made in the future when it is actually released.
Steps to reproduce -
Create a new instance of the chromedriver or attempt to call the default constructor on the UrlChecker class while having guava 23.0rc1 as your current version of guava.
This is a minor issue as you can prevent this error from occurring by downgrading your guava version, however, it is something that may need to be considered going forward.