java.lang.IllegalAccessError: tried to access method com.google.common.util.concurrent.SimpleTimeLimiter. when using Selenium-Java 3.5.1 or above

11,431

Solution 1

This error message...

java.lang.IllegalAccessError: tried to access method com.google.common.util.concurrent.SimpleTimeLimiter.<init>(Ljava/util/concurrent/ExecutorService;)V from class org.openqa.selenium.net.UrlChecker

...implies that there was a mismatch between the version of the WebDriver variant (i.e. GeckoDriver / ChromeDriver) and the version of the respective WebBrowser variant (i.e. Firefox / Chrome) you are using.

Note: You need to ensure that you are using the latest JDK versions.


GeckoDriver-Selenium-Firefox

If you are using GeckoDriver-Selenium-Firefox combo, you need to follow the following compatibility chart:

supported_platforms


ChromeDriver-Chrome

If you are using ChromeDriver-Chrome combo, you need to ensure that the binaries are compatible as per the entries below:

  • ChromeDriver v101: Supports Chrome v101
  • ChromeDriver v100: Supports Chrome v100
  • ChromeDriver v99: Supports Chrome v99
  • ChromeDriver v98: Supports Chrome v98
  • ChromeDriver v97: Supports Chrome v97
  • ChromeDriver v96: Supports Chrome v96
  • ChromeDriver v95: Supports Chrome v95
  • ChromeDriver v94: Supports Chrome v94
  • ChromeDriver v93: Supports Chrome v93
  • ChromeDriver v92: Supports Chrome v92
  • ChromeDriver v91: Supports Chrome v91
  • ChromeDriver v90: Supports Chrome v90
  • ChromeDriver v89: Supports Chrome v89
  • ChromeDriver v88: Supports Chrome v88
  • ChromeDriver v87: Supports Chrome v87
  • ChromeDriver v86: Supports Chrome v86
  • ChromeDriver v85: Supports Chrome v85
  • ChromeDriver v84: Supports Chrome v84
  • ChromeDriver v83: Supports Chrome v83
  • ChromeDriver v82: Was intentionally skipped
  • ChromeDriver v81: Supports Chrome v81
  • ChromeDriver v80: Supports Chrome v80
  • ChromeDriver v79: Supports Chrome v79
  • ChromeDriver v78: Supports Chrome v78
  • ChromeDriver v77: Supports Chrome v77
  • ChromeDriver v76: Supports Chrome v76
  • ChromeDriver v75: Supports Chrome v75
  • ChromeDriver v74: Supports Chrome v74
  • ChromeDriver v73: Supports Chrome v73
  • ChromeDriver v2.46: Supports Chrome v71-73
  • ChromeDriver v2.45: Supports Chrome v70-72
  • ChromeDriver v2.44: Supports Chrome v69-71 (same as ChromeDriver 2.43, but with additional bug fixes)
  • ChromeDriver v2.43: Supports Chrome v69-71
  • ChromeDriver v2.42: Supports Chrome v68-70
  • ChromeDriver v2.41: Supports Chrome v67-69
  • ChromeDriver v2.40: Supports Chrome v66-68
  • ChromeDriver v2.39: Supports Chrome v66-68
  • ChromeDriver v2.38: Supports Chrome v65-67
  • ChromeDriver v2.37: Supports Chrome v64-66
  • ChromeDriver v2.36: Supports Chrome v63-65
  • ChromeDriver v2.35: Supports Chrome v62-64
  • ChromeDriver v2.34: Supports Chrome v61-63
  • ChromeDriver v2.33: Supports Chrome v60-62
  • ChromeDriver v2.32: Supports Chrome v59-61
  • ChromeDriver v2.31: Supports Chrome v58-60
  • ChromeDriver v2.30: Supports Chrome v58-60
  • ChromeDriver v2.29: Supports Chrome v56-58
  • ChromeDriver v2.28: Supports Chrome v55-57
  • ChromeDriver v2.27: Supports Chrome v54-56

Note: A few months ago, Chromium Team made a preliminary announcement that ChromeDriver's versioning model will be changing. Now Chromium Team is moving forward with the plan. Specifically, ChromeDriver 2.46 will be the last release carrying the major version of 2. Future ChromeDriver releases will carry a version number similar to Chrome release. We will start with a release of ChromeDriver 73 next week, before the Beta release of Chrome 73.

Here is how the new release model will work:

  • ChromeDriver will be using the same version number scheme as Chrome. See https://www.chromium.org/developers/version-numbers for more details.
  • Each version of ChromeDriver will support Chrome with matching major, minor, and build version numbers. For example, upcoming ChromeDriver 73.0.3683.* will support all Chrome versions that start with 73.0.3683.
  • Before a new major version of Chrome goes to Beta, a matching version of ChromeDriver will be released. For example, a new version of ChromeDriver will be release next week to match the Beta release of Chrome m73.
  • After the initial release of a new major version, we will release patches as needed. These patches may or may not coincide with updates to Chrome.

Further, this error com.google.common.util.concurrent.SimpleTimeLimiter was also observed when a Selenum Grid Node appears to have successfully registered to the Selenum Grid Hub and was also confirmed from the grid console but when requesting for a session the following error was observed :

org.openqa.selenium.WebDriverException: com.google.common.util.concurrent.SimpleTimeLimiter.create(Ljava/util/concurrent/ExecutorService;)Lcom/google/common/util/concurrent/SimpleTimeLimiter;

This error occured with Selenium-Grid-Extras Hub (1.12.16) due to inconsistency between selenium and guava dependencies that are packaged into the JAR

This issue was addressed through the merge #367 and using Selenium v3.8.1 will solve your problem.

Ensure two points as :

  • Selenium Grid Extras version is greater than (or equal to) 1.12.17
  • guava dependencies are updated.

Solution 2

In my earlier pom.xml, this was the entry:

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>2.53.0</version>
</dependency>

Below error was being thrown,

Error: java.lang.IllegalAccessError: tried to access method com.google.common.util.concurrent.SimpleTimeLimiter.(Ljava/util/concurrent/ExecutorService;)V from class org.openqa.selenium.net.UrlChecker

Then I updated the POM with the latest version:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.14.0</version>
</dependency>

I did not see the error once again. Hope this helps.

Solution 3

Check in you POM.XML file you will have 2 entry for "selenium-chrome-driver" dependency. so, both dependency there and it is confuse which one need to take and giving you Exception. My one is working after this change.

Share:
11,431
bassCoder
Author by

bassCoder

Updated on June 07, 2022

Comments

  • bassCoder
    bassCoder almost 2 years

    I am wondering if anyone can give me an idea why I'm getting the following error when I use Selenium-Java 3.5.1 or above -

    java.lang.IllegalAccessError: tried to access method com.google.common.util.concurrent.SimpleTimeLimiter.<init>(Ljava/util/concurrent/ExecutorService;)V from class org.openqa.selenium.net.UrlChecker
    
  • bassCoder
    bassCoder over 6 years
    I still get the same error even after updating to Selenium v3.8.1, I'm actually also using testNG alongside selenium to run my tests. I'm running testNG v6.10 and selenium-java v3.8.1
  • undetected Selenium
    undetected Selenium over 6 years
    Hmmm ... Your code trials, pom.xml and the error trace logs could have given us some hint whats wrong happening out there.
  • WebComer
    WebComer about 5 years
    Same errror with driver matched browser version. Big trouble with portable browsers.
  • paul
    paul almost 5 years
    This worked for me. Needed to update selenium dependency.