Skip to content

Issues with Guava 23.0rc1 in URLChecker.java class #4381

@JordanHansen

Description

@JordanHansen

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.

Metadata

Metadata

Assignees

Labels

C-javaJava BindingsE-easyAn easy issue to implement or PR to review

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions